例如,我正在处理两个项目,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" />