我在本地主机上写了一个HTML/CSS/JS项目。 项目根目录位于http://localhost/projects/project1/
。HTML项目路径混淆
我想知道是否有可能使HTML文件对待我的项目 根作为其基地URL,以便引用同一个JavaScript/CSS文件 不依赖于HTML文件的路径(除非我参考相对于当前目录 )。
这里是我的项目结构:
项目
PROJECT1
- 的index.html
- 页(目录)
- page1.html
page2.html
应用(目录)
APP1(目录)
- 的index.html
- 的style.css
- app.js
个DEPS(目录)
- 的jquery.js
正如你所看到的,指的jquery.js我/projects/project1/index.html
内,
我必须写:
<script src="deps/jquery.js"></script>
要参考/projects/project1/pages/index1.html
里面的jquery.js,
我得w仪式
<script src="../deps/jquery.js"></script>
要引用的jquery.js内http://localhost/projects/project1/apps/app1/index.html
,
我必须写
<script src="../../jquery.js"></script>
在我不知道我写的../
S上的正确数量这点,并可以很容易地 原因错误。
更糟的是,如果我重新排列我的目录或重新命名它们,这意味着我必须再次处理 重写路径,这可能非常令人生畏。
我想过各种方法来解决他们没有一个是吸引人的(尽管选项3接近)。
思想/尝试:
- 我试着用的.htaccess RewriteEngine叙述/ RewriteBase但是毫无效果播放。
- 我可以为每个项目创建一个新的服务器,因为NodeJS很容易实现。 这样,每个服务器都有一个目录作为它的静态路径,并且是'/'。 这种方法的问题是,这个管理很多服务器立即在不同的端口上,这可能会造成混淆。
我可以通过
SetEnv PROJECT_PATH /projects/project1/
设置在.htaccess绝对路径变量但是这样做就意味着我要打开我的.htaccess文件夹移动 或将其重命名和更改PROJECT_PATH各一次。这看起来很简单,但如果您将项目给予别人,他们不知道.htaccess如何工作, 解释如何找到此路径以及如何更改它, 甚至更有问题如果.htaccess比一行更长。
理想情况下,我希望这个SetEnv找出它本身在里面的文件夹, ,但我不知道如何做到这一点。这也存在一个问题,即路径依赖于PHP预处理,这使得转移到另一个没有.htaccess或PHP的服务器(如NodeJS)(它仍然可以调用PHP,但即使如此,它需要处理.htaccess )。
我想知道是否有可能要么
让.htaccess文件创建一个包含这个特殊的.htaccess文件的路径推导出一个 环境变量,所以内部的PHP文件此目录可以执行 相对于
$_ENV{PROJECT_ROOT}
的路径。这样,如果项目被移动或共享,它仍然可以工作,无需修改.htaccess。使.htaccess强制包含在相同或较低目录中的所有“/”引用将该目录视为根的HTML文件。
或者如果还有其他事情可以解决这个问题,我还没有想到。
提前致谢。
为什么你不能使用相关网址? –
,因为我想在每个引用它的文件中以相同的方式引用相同的依赖关系,否则项目变得难以改变,并且很难缩放。它也使生成html文件变得更困难。 – Dmitry