web-dev-qa-db-ja.com

express.staticおよびCSSファイルのMIMEタイプエラー

私はエクスプレスとノードを使用しています。私のserver.jsファイル私はこのコードを持っています:

app.use(express.static('/static'));

その後、静的ディレクトリにCSSフォルダーがあり、次にstyle.cssファイル。私のindex.html、次のようにシートにリンクします。

  <link rel="stylesheet" type="text/css" href="/static/css/style.css">

しかし、私のローカルホストでは、引き続きこのエラーが発生します。

' http:// localhost:3500/static/css/style.css 'からのスタイルの適用は拒否されました。MIMEタイプ( 'text/html')はサポートされているスタイルシートのMIMEタイプではなく、 MIMEチェックが有効になっています。

私のタグのパス名が正しいと確信しています。なぜこのエラーが発生するのか混乱しています。 CSSファイルはHTMLではなくCSSとして処理されることを宣言する必要がありますか? type="text/CSS"?そうでない場合、この問題を解決するためにサーバーファイルに何を入れる必要がありますか?

7
isabelringing
app.use(express.static('/static'));

静的ファイルは文字どおり/staticから提供されることを意味します。 Unixベースのオペレーティングシステムでは、これはディレクトリルート/の直接の子です。私はそうは思いませんが、ファイルを保存するべきではありません。そのディレクトリに公にアクセス可能なファイルは言うまでもありません。代わりに、おそらく探しているのは、アプリケーションのディレクトリ内のstaticディレクトリです。

これは、ファイルをサーバーに送信するようにExpressに指示する方法です。

app.use(express.static(__dirname + "/static"));

提供されたファイルがファイルを見つけられなかったためにExpressによって作成された「404 Not Found」ページである可能性があるため、MIMEタイプエラーが発生しています。

HTMLにファイルを含めることができない場合は、常にダブルチェックを行うか、トリプルチェックを行うと、ブラウザから最初にファイルにアクセスできることを確認できます。

また、ファイルは/ static/...ではなく、/ ...に配置されます。

6
Luca Kiebel