又來了一個問題,因爲我目前的解決方案是不是真的滿足了我對以下問題的HTML資源:我有在開發MVC模式的自己的PHP框架辦法避免的Apache別名路徑包括像CSS
。而我的路由器工作完美,所有,但我有一個問題,我找不到解決方案。
那麼我路由每個傳入的請求index.php文件位於我的框架的基路徑。 Ofcourse這是沒有問題的,包括CSS時,如用相對路徑的工作:
<link rel="stylesheet" type="text/css" href="style/include/css/style.css" />
這個工程在瀏覽器中完美。當然,我在URL中輸入的內容並不重要,因爲每個請求都會按照上述方式重定向到索引,從而使合理的路由成爲可能。
但是,當我的網址包含多個類似子文件夾的斜槓時,例如:「/ manual/details/1_2」,我得到一個正常的路由過程,但瀏覽器找不到css文件,除非我添加「../」爲我的網址中的每個「/」映射回我的基路徑。
例如,對於上面的網址,這將工作,而不是:
<link rel="stylesheet" type="text/css" href="../../style/include/css/style.css" />
我CURENT解決方案:
我寫在我的路由類中的PHP函數,確定所需要的量「../」模式,並且我總是在實施資源之前投入該功能,以便隨時建立精確的 路徑。
例子:
<link rel="stylesheet" type="text/css" href="<?=Router::getInstance()->getSubdirectoryPrefix()?>style/include/css/style.css" />
不用說,這是非常不方便,也如果你忘記將這個函數很爛。如果你的路線改變了,或者你忘記了你在一個子目錄中,你會想知道爲什麼你的資源找不到。
我也知道如何在Alias的虛擬主機配置中添加一個別名,例如Alias/public style /,但我想找到另一個 - 項目和PHP內部方式,而沒有一個不方便的廢話,比如粘貼別名函數all這個時間並且沒有設置虛擬主機選項,所以框架可以保持輕量級,並且不需要任何討厭的外部選項,比如修改虛擬主機。
我很想聽聽您的解決方案,最好是.htacces - OH中,在它說話時,我在這裏留下我的.htaccess代碼藏漢:
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [L]
在此先感謝您的幫助〜
大聲笑,這是太容易...非常感謝這很像一個魅力! – Steini 2014-09-03 08:38:15