2015-01-21 68 views
0

我會盡我所能清楚我的問題,但請,如果有什麼隱晦的話,請跟我聯繫。框架代碼和資源作爲主項目目錄的同級目錄

我正在開發幾個PHP Web項目。他們都有一些共同的代碼 - 爲簡潔起見,我們稱之爲「框架」。所以我得出結論:最好將框架移出項目目錄。換句話說,這是我現在有:

www 
|--framework 
|--project1 
|--project2 
|--project3 

這工作只要我只需要包括PHP腳本。實際上,像requireinclude這樣的函數使用文件的物理地址,並且可以很容易地使用require_once("../framework/file.php")指向框架。

但是,在框架目錄中還有一些資源:Javascript文件,一些功能性CSS等等。例如,假設jQuery的文件位於框架目錄中; 我將如何包含它<script src="../framework/jquery.min.js"></script>不起作用,因爲像http://example.com/../framework/jquery.min.js這樣的URL被認爲是無效的。

一個不是很酷的解決方法突破了我的想法,就是使用mod_rewrite將URL的所有請求重定向到「框架包含腳本」,這是一種特殊的PHP腳本,可以捕獲正確的文件並返回其內容。它可以工作,但對我來說這似乎是一個非常難看的解決方案。

回答

2

我regularily做,通過使用符號鏈接:

  • 如果每個項目目錄內的shell訪問的服務器運行ln -s ../framework/ .
  • 如果你沒有shell訪問,每一個項目豬病內運行<?php symlink('../framework', './framework'); ?>一次。

編輯

你會再使用<script src="framework/jquery.min.js"></script> respe。 <?php include 'framework/something.php'; ?>包含框架腳本。

+0

這似乎走在正確的方向,但我不能在Windows下使用符號鏈接。到目前爲止,我所有的開發都發生在Windows機器上(儘管服務器是基於Linux的)。另外,你介意在你的編輯中更清楚一些嗎?你的意思是我可以使用簡單的舊鏈接和URL? – Simone 2015-01-21 01:03:21

+1

簡單的舊鏈接和URL正是我的意思 - 這就是它的美麗。 – 2015-01-21 11:17:43

+1

您可以在Windows中使用符號鏈接 - 請參閱'mklink'或http://sourceforge.net/projects/symlink-creator/ – 2015-01-21 11:18:33