子文件夹中的Web项目开发


Web project development in subfolder

例如,我正在处理两个项目,A&B、 它们将来都将托管在根目录中。Atm我有一个带有默认参数的apache web服务器,我想开始工作,所以我创建了文件夹A和文件夹B,在那里我将存储所有需要的文件。

问题是我什么时候使用之类的东西

<script type="text/javascript"  src="/resources/scripts/javascript.js" ></script>
<link  href="/resources/styles/stylesheet.css" rel="stylesheet" type="text/css" />

这两个项目都将从apache根文件夹(httpdocs)调用此文件,而不是从/a/和/b/文件夹调用。

当我使用PHP框架时,情况会变得更糟,所以我不能只使用

<link  href="./resources/styles/stylesheet.css" rel="stylesheet" type="text/css" />

(点在/resources/之前),因为路由项目正试图访问像文件夹一样的控制器并从中获取资源。

听起来像是一个小问题,但我无法自己解决这个问题,所以每次我需要开发一些东西时,我都会一次又一次地发明解决方案:)

处理此问题的一个好方法是使用一个常量来保存项目的路径。这样,您只需要编辑该常量就可以正确地执行路径。

define('BASEDIR', '/a/');
echo '
<script type="text/javascript"  src="'.BASEDIR.'resources/scripts/javascript.js" ></script>
<link href="'.BASEDIR.'resources/styles/stylesheet.css" rel="stylesheet" type="text/css" />';

这将把你的路径变成

<script type="text/javascript"  src="./a/resources/scripts/javascript.js" ></script>
<link href="./a/resources/styles/stylesheet.css" rel="stylesheet" type="text/css" />';

如果你把这个常量保存在一个单独的文件中,你可以把它包含在你需要的地方。例如,一个处理AJAX请求的php文件。

您可以在每个项目文件夹中创建一个.htaccess文件(如果您无法访问httpd.conf)

ScriptAlias /resources/  "/var/www/html/resources/"
<Directory "/var/www/html/resources/">
   #... whatever you want to set here ...
</Directory>

然后你可以继续使用

script type="text/javascript"  src="/resources/scripts/javascript.js" ></script>
<link  href="/resources/styles/stylesheet.css" rel="stylesheet" type="text/css" />