Ubuntu
連結到 Web 根目錄之外的項目
這是目錄在我的伺服器上的佈局方式(我繼承了這一點,目前無法更改)-
/var/www/<stuff for the web> /home/project/src/static/<some CSS, some JavaScript, etc.>
在不希望在不同目錄中有重複文件的宏偉計劃中,我嘗試包含一些這樣的文件 -
<link rel="stylesheet" href="/home/project/src/static/css/<file>.css" type="text/css" /> <script src="/home/project/src/static/lib/<file>.js" type="text/javascript"></script>
對於我嘗試以這種方式包含的每個文件,我都會收到 404 錯誤。我已經修改了“主”目錄的路徑,試圖通過添加到路徑字元串的開頭來遍歷從
/var/www/
到,但沒有任何樂趣。/home/``..
然後,在確認安裝了 mod_alias 之後,我開始在我的配置文件中添加一個路徑別名指令:
Alias /home/project/src/static/ /home/project/src/static/ <Directory /home/project/src/static/> Order allow,deny Allow from all </Directory>
重新啟動 Apache,但仍然沒有運氣。我試過這個有和沒有斜杠。
我已經確認的另一件事
open_basedir
是未在 php.ini 中設置,因為我了解設置它可能會在嘗試訪問 Web 根目錄之外的文件時產生問題。除了複製目錄並將其放置在 Web 根文件夾中之外,我還能做些什麼來使這些文件可以從 Web 根目錄中找到?
兩個選項…一個只是正確使用別名…第一個路徑是相對於 web 目錄的,就像您
http://yoursite/static
在瀏覽器中一樣,您將使用:Alias /static/ /home/project/src/static/
或者,如果您不喜歡這樣並且寧願通過更改文件系統層次結構來解決它,請使用綁定掛載。
mkdir /var/www/static/
然後在 fstab 中:
/home/project/src/static/ /var/www/static/ bind defaults 0 0
並應用更改:
mount -a
或一次性安裝:
mount --bind /home/project/src/static/ /var/www/static/
綁定安裝並不總是最好或最簡單的選擇……可能會發生有趣的事情,例如。執行
rm -rf /var/www/*
,你/home/project/src/static/*
也會被刪除。