web-dev-qa-db-ja.com

ブラウザがCSSとJSをレンダリングしない

私が使用しています:

  • CentOS 7
  • Apache 2.4
  • php56-php-fpm
  • php72-php-fpm

私の開発サーバー上。ハンドラを指定して、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

ファイルのヘッダー:

enter image description here

完全な仮想ホスト:

<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>
1
treyBake

問題はあると思います。 SetHandlerは、PHPファイルかどうかに関係なく、仮想ホスト内のすべての可能なURLに適用されます。したがって、たとえそれが静的ファイルであり、PHPは静的ファイルをPHPとして解釈するため、得られた結果を得ることができます。

代わりに、ファイル名でファイルを選択して、PHPファイルのリクエストのみをハンドラーに送信する必要があります。

        <FilesMatch \.php$>
            SetHandler "proxy:fcgi://127.0.0.1:9072"
        </FilesMatch>

次に、追加した不要な冗長<Files>ビットを削除できます。

3
Michael Hampton

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ディレクトリー(再帰的)を変更してください。