我在本地主機上寫了一個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