我正在我的localhost上编写一个HTML / CSS / JS项目。
项目根目录位于http://localhost/projects/project1/
。
我想知道是否可以让HTML文件处理我的项目 root作为其'基本URL,以便引用相同的javascript / css文件 并不依赖于HTML文件的路径(除非我相对于 当前目录)。
这是我的项目结构:
项目
PROJECT1
page2.html
应用(目录)
APP1(目录)
DEPS(目录)
如您所见,在我的/projects/project1/index.html
中引用jquery.js,
我必须写:
<script src="deps/jquery.js"></script>
引用/projects/project1/pages/index1.html
内的jquery.js,
我必须写
<script src="../deps/jquery.js"></script>
引用http://localhost/projects/project1/apps/app1/index.html
内的jquery.js,
我必须写
<script src="../../jquery.js"></script>
此时我不确定我是否写了../
的正确数量并且很容易
导致错误。
更糟糕的是,如果我重新排序我的目录或重命名它们,这意味着我必须处理 再次重写路径,这可能非常令人生畏。
我已经想到了解决这些方法的各种方法,但没有一个方面具有吸引力(尽管选项3已经接近)。
<小时/> 想法/尝试:
我可以通过
在.htaccess中设置绝对路径变量 SetEnv PROJECT_PATH /projects/project1/
但是这样做意味着每次移动文件夹时都必须打开.htaccess 或重命名并更改PROJECT_PATH。这可能看起来很简单,但如果你 将项目交给其他人,他们不知道.htaccess是如何工作的, 解释如何找到这条路径以及如何改变它是非常痛苦的, 如果.htaccess长于一行,则会出现更多问题。
理想情况下,我希望这个SetEnv能够自己找出它所在的文件夹, 但我不知道如何做到这一点。这也有一个问题,即路径变得依赖于PHP预处理,这使得移动到没有.htaccess或PHP的其他服务器(如NodeJS(仍然可以调用php,但即便如此它需要处理.htaccess)也很痛苦。 )。
我想知道是否可以
使.htaccess文件创建一个包含推导路径的环境变量
这个特殊的.htaccess文件使这个目录中的php文件可以
做相对于$_ENV{PROJECT_ROOT}
的路径。这样,如果移动或共享项目,它仍然可以工作而无需修改.htaccess。
使.htaccess强制包含在所有&#34; /&#34;的相同或更低目录中的HTML文件引用将此目录视为根目录。
或者,如果还有其他事情可以解决这个问题,我没有想到。
提前致谢。
答案 0 :(得分:0)
1)在您的文件 httpd.conf 中,在最后添加以下行:
Redirect permanent /deps http://localhost/projects/project1/deps/
2)重启apache服务
3)刷新索引页面(/projects/project1/pages/index1.html)
我使用过这样的东西:
<html>
<head>
<script src="/deps/jquery.min.js"></script>
</head>
</html>
<?php
echo "welcome to index"
?>
答案 1 :(得分:0)
如何访问文档根目录以外的目录?
这解释了如何让用户访问Windows上目录根目录之外的目录。
假设您的目录位于C:/ www / newfolder /,那么您将在httpd.conf文件中创建以下内容。
Dim linqTemp = (From t1 In dsTempResults.Tables(0).AsEnumerable Group Join
t2 In _myDtPalletGun.AsEnumerable On t1.Field(Of String)("item_no") Equals t2.Field(Of String)("Item_No")
Into dataGroup = Group From row In dataGroup.DefaultIfEmpty Where row IsNot Nothing
Select t1).Distinct().Take(Convert.ToInt16(Me.txtNumberToReturn.Text))
现在,当用户访问 www.domain.com/newfolder / 时,他们会看到文档根目录外的文件夹,它在浏览器中显示为文档下方的目录根..
要考虑的一件事是,如果您有虚拟主机,那么别名适用于每个虚拟主机,因此请尝试为您的别名使用不常见的名称。
希望这有帮助