我有一個靜態網站,我想張貼在cPanel托管。所有的頁面在我的電腦上都能很好地加載,但是當上傳到cPanel主機上時,CSS無法加載。
css文件夾的位置與它在PC上的位置一樣。
& lt鏈接id = & quot彩色鏈接& quotrel = & quot樣式表& quottype = & quottext/CSS & quot;href = & quot../assets/CSS/style . CSS & quot;& gt
域名的根指向index.html文件所在的目錄,項目的所有目錄都與PC上的保持一致。
link元素的href屬性顯示樣式表與index.html不在同一個目錄(或子目錄)中。這不適用于大多數服務器,包括Apache(您使用的是cPanel,它通常運行Apache)。
假設您有以下目錄結構:
Web project
|-- assets
| |-- style.css
|
|-- site
|-- subdirectory
| |-- image.jpg
|
|-- index.html
|-- favicon.ico
并且您的域指向index.html所在的站點(根目錄)。
我們可以通過請求http://example.com/index.html.來訪問文件index.html。同樣,我們可以通過訪問http://example.com/網站來訪問網站圖標。我們還可以訪問子目錄中的文件——在上面的例子中,我們可以訪問http://example.com/subdirectory/image.jpg
但是,我們無法從域中訪問資產目錄。服務器的根目錄是站點目錄——也就是說,它已經被配置為指向那里的域——它將拒絕處理該目錄之外的文件。因為資產目錄不是站點目錄的派生目錄,所以不能提供該目錄中的任何文件。如果服務器收到http://example.com/../assets/style.css請求,它將返回一個錯誤。
這不是cPanel或Apache所獨有的。實際上,一般用途的web服務器不會處理根目錄以外的請求。
最簡單的解決方案是將資產目錄移到站點目錄中,然后相應地更新所有引用。
Web project
|-- site
|-- assets
| |-- style.css
|
|-- index.html
|-- favicon.ico
<link id="color-link" rel="stylesheet" type="text/css" href="assets/css/style.css">
但是,請注意,如果您有任何其他對資產的引用——例如圖像URLs您也必須更新它們。