Apache-2.4
瀏覽器不渲染 css 和 JS
我正在使用:
- CentOS 7
- 阿帕奇 2.4
- php56-php-fpm
- php72-php-fpm
在我的開發伺服器上。我設法得到它,所以我可以指定一個處理程序,它將把那個虛擬主機放在正確的 PHP 版本上,但是 CSS 和 JS 似乎出了問題。
我收到此錯誤:
scriptname.js 已載入,即使其 MIME 類型(“text/html”)不是有效的 JavaScript MIME 類型
最終導致致命錯誤。Google搜尋它導致我找到各種文章,我首先將以下內容添加到我的
httpd.conf
文件中:AddType text/css .css AddType text/javascript .js
但這沒有用。
然後我將它添加到我的 .htaccess 中,再次沒有成功。
然後我發現了一些建議這樣寫的東西:
AddType 'text/css; charset=UTF-8' .css
這確實修復了大部分 CSS - 但不是
.js
.我如何獲得它以使一切按預期工作?
(注意:讓我知道要添加哪些文件內容,我會相應地編輯問題)
編輯:
我將錯誤消息歸結為:
使用源 /path/to/file.js 載入失敗
通過將其添加到我的虛擬主機文件中:
<Files *.js Header set Content-type "text/javascript" </Files>
似乎去那個文件顯示:
拒絕訪問
那裡的文件權限:
drwxr-xr-x 2 dev-admin dev-admin 42 Apr 4 11:37 ./ drwxr-xr-x 4 dev-admin dev-admin 27 Mar 12 17:21 ../ -rw-r--r-- 1 dev-admin dev-admin 86927 Mar 1 15:14 jquery.min.js -rw-r--r-- 1 dev-admin dev-admin 5094 Apr 4 11:37 main.js
文件標題:
完整的虛擬主機:
<VirtualHost *:80> ServerName site1.development DocumentRoot /var/www/dev/site1 <Directory /var/www/dev/site1> # removing this shows the MIME type errors from before <Files *.css> Header set Content-type "text/css" </Files> # removing this shows the MIME type errors from before <Files *.js> Header set Content-type "text/javascript" </Files> SetHandler "proxy:fcgi://127.0.0.1:9072" AllowOverride all Options Indexes FollowSymLinks </Directory> </VirtualHost>
我想我看到了問題。您
SetHandler
將應用於虛擬主機中的每個可能的 URL,而不管它是否是 PHP 文件。因此,所有內容都會傳遞給 PHP,即使它是靜態文件。而且因為 PHP 將靜態文件解釋為 PHP,所以您會得到結果。您應該只向處理程序發送對 PHP 文件的請求,方法是按文件名選擇它們:
<FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9072" </FilesMatch>
然後,您可以刪除
<Files>
您添加的不必要的冗餘位。