私が使用しています:
私の開発サーバー上。ハンドラを指定して、vhostを正しいPHP=バージョンに配置しますが、CSSとJSがうまくいかないようです。
私はこのエラーを受け取ります:
scriptname.jsは、そのMIMEタイプ(「text/html」)が有効なJavaScript MIMEタイプではないにもかかわらずロードされました
最終的には致命的なエラーにつながります。グーグルするとさまざまな投稿が表示され、まずhttpd.conf
ファイルに以下を追加しました:
AddType text/css .css
AddType text/javascript .js
しかし、それはうまくいきませんでした。
次に、それを.htaccessに追加しましたが、やはり成功しませんでした。
それから私はそれをこのように書くことを示唆する何かを見つけました:
AddType 'text/css; charset=UTF-8' .css
これはCSSの大部分を修正しましたが、.js
は修正しませんでした。
すべてが期待どおりに機能するようにするにはどうすればよいですか?
(注:追加するファイルの内容を教えてください。それに応じて質問を編集します)
エラーメッセージは次のとおりです。
ソース/path/to/file.jsの読み込みに失敗しました
これを私のvhostファイルに追加することにより:
<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
は、PHPファイルかどうかに関係なく、仮想ホスト内のすべての可能なURLに適用されます。したがって、たとえそれが静的ファイルであり、PHPは静的ファイルをPHPとして解釈するため、得られた結果を得ることができます。
代わりに、ファイル名でファイルを選択して、PHPファイルのリクエストのみをハンドラーに送信する必要があります。
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9072"
</FilesMatch>
次に、追加した不要な冗長<Files>
ビットを削除できます。
403エラーは通常、権限エラーが原因です。ディレクトリレベルまたはファイルレベルのいずれかです。
あなたの場合、私が見ることができるもの(ファイルとApache docルートディレクトリの権限のみ)から、権限は問題ないようです。
親ディレクトリのアクセス許可を教えてください。 (権限が厳しすぎる/ var/www/dev /である可能性があります)
権限が「その他」を許可していない場合、0755はそれを行う必要があります...
chmod 0755 /var/www/dev
また、/ var/www/devは「dev-admin」に属している必要があります。そうでない場合は、所有権を変更することをお勧めします。
chown dev-admin: /var/www/dev
そして、@ Michael Hamptonは正しいです。変更は必要ありませんでした(デフォルトのCentOS 7 Apache構成)。
おお!すべてのベースをカバーしていることを確認するために... dev-adminはApacheユーザーですか?
そうでない場合は、メインのApache構成内で変更するか、適切なユーザーでdevディレクトリー(再帰的)を変更してください。