リソースはスタイルシートとして解釈されますが、MIMEタイプtext / htmlで転送されます(Webサーバーに関連していないようです)


188

私はこの問題を抱えています。Chromeは引き続きこのエラーを返します

リソースはスタイルシートとして解釈されますが、MIMEタイプtext / htmlで転送されます

このエラーの影響を受けるファイルは、Style、choose、jquery-gentleselectのみです(同じ方法でインデックスにインポートされる他のCSSファイルは、エラーなく正常に機能します)。私はすでにMIMEタイプをチェックしており、text / cssはすでにCSSにあります。

正直なところ、問題を理解することから始めたいと思います(一人ではできないようです)。


このスタイルシートのURLを提供できますか?
リスター氏2014年

誰かがこれを必要とする場合に備えて。これは、cssファイルの圧縮が原因で発生していました。そして、どういうわけか、1回はローカルで、もう1回は私のCDNプロバイダーからの2回の圧縮の後、サーバーはそれを認識できなくなります。
LYu

これは、ミドルウェア(静的ファイルを提供する前の認証ミドルウェア)の順序の問題が原因で、スタイルシートタグのリクエストがサーバーにリダイレクトされたときに発生しました。コンソールのエラーメッセージResource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:3000/login". login:1 Uncaught SyntaxError: Unexpected token <には、元のcssリクエストの代わりにリダイレクトされたページのURLが表示されていたため、追跡が少し困難でした。
ヴォーン

私も@vaughanが遭遇したことを経験しました。これは、スタイルシートに認証が必要だったためです。。。認証を実行しようとしたページ。トラブルシューティングするのは本当に難しい問題ですが、一度理解すれば、それはかなり明白なようです。
Todd R

多くの人々が、さまざまな環境でこの問題にさまざまなソリューションを追加しています。私(Reactjs)を見つける前に、たくさんスクロールする必要がありました。SOで通常行われているように、トップが近くにない場合でも、あきらめないでください。
Juan Lanus

回答:


86

問題を理解することから始めたい

ブラウザはサーバーにHTTPリクエストを送信します。次に、サーバーはHTTP応答を行います。

要求と応答はどちらも、一連のヘッダーと、コンテンツが含まれている(オプションの場合もある)本文で構成されています。

本文がある場合、ヘッダーの1つはContent-Type本文が何であるかを記述するヘッダーです(HTMLドキュメントですか?画像ですか?フォーム送信の内容ですか?など)。

スタイルシートを要求すると、サーバーはブラウザContent-Type: text/htmlに、スタイルシート(Content-Type: text/css)ではなくHTMLドキュメント()であることを通知します。

私はすでにmyme.typeをチェックしており、text / cssはすでにcssにあります。

次に、サーバーの別の問題により、そのスタイルシートに間違ったコンテンツタイプが含まれています。

ブラウザの開発者ツールの[ネット]タブを使用して、リクエストとレスポンスを調べます。


4
私はイムはかなり確信して問題があるウィッヒ私の.htaccessにあることだと思いpastebin.com/w8UnqFs8(私はこのエラーが唯一のサブディレクトリにのみページの更新後に私を与えていることを言及するのを忘れてしまいました)。あなたの説明をありがとう、問題を理解するのにかなり役に立ちました。:)
Max

あなたは、ログインせずにファイルにアクセスできることを確認してください。
Waqar

1
@Maxなぜ実際の質問にその情報を入れないのですか?:)
myrdd

101

Angularを使用していますか?

これは覚えておくべき非常に重要な警告です。

ベースタグは頭の中だけでなく、適切な場所にある必要があります。

頭の間違った場所に私のベースタグがありました、それはURLリクエストのあるタグの前に来るはずです。基本的には、タイトルの下の2番目のタグとして配置することで解決しました。

<base href="/">

ここに小さな投稿を書いた


2
解決するng-href代わりに使用hrefしてください!
Peter Wilson

OTS解析エラーが発生しました:代わりに無効なバージョンタグですが、解決策を探しているときにこれを見つけました。
Patrick Graham

1
:私の場合、私はそのようなように、クエリ文字列変数にディレクトリを変更するには.htaccessの書き換えルールを使用していたRewriteRule ^my_dir/(.+)$ /new_dir/?my_var=$1 [L,QSA]
lincolnberryiii

Maxと同様に、Angularを使用していないにもかかわらず、これで問題が解決しました。問題のリンク/ hrefを最初に、他のすべてのリンクの前のヘッドセクションに配置しました。警告は消えました。

記事のタイトルの名前を変更したい場合があります。Angularも使用していません。私はSwift + Leafを使用していて、これで私の問題は解決しました。
迅速なナブ

37

私もこのエラーに問題があり、解決策を見つけました。これはエラーが発生した理由を説明していませんが、場合によってはエラーを修正しているようです。

次の ように、CSSファイルへのパスの前にスラッシュ/を含めます 。

<link rel="stylesheet" href="https://stackoverflow.com/css/bootstrap.min.css">


この場合、これは関連していますか?
Gilles Gouaillardet 2017

2
私はこの小さな間違いで多くの時間を失っていました。誰かが私の答えを読んで、それが彼を助けるなら、それはこの場合に関連があります。
Trilochan 2017

2
実際に起こったのは、サーバーがでファイルを提供し/css/bootstrap.min.cssたことですが、含めなかった場合は/、現在のディレクトリでのみ検索されます。たとえば、にアクセスした場合yoursite.com/hello/trilochan、下hello/css/bootsrap.min.cssに見えますが、本当に下yoursite.com/css/bootsrap.min.cssにあります。これ/はルートを参照し、がない/場合は現在のディレクトリを検索します。
Suraj Jain 2017年

1
@GillesGouaillardetそれは非常に関連がありました、私は同じ問題を抱えていました。
Suraj Jain 2017年

colt steeleによるudemyのウェブデベロッパーブートキャンプを強くお勧めします。
Suraj Jain 2017年

17

私の問題は、この投稿のすべての回答よりも単純でした。

静的コンテンツを含めるようにIISをセットアップする必要がありました。

ここに画像の説明を入力してください


10

これを試して <link rel="stylesheet" type="text/css" href="../##/yourcss.css">

どこ ##あなた.CSSである、あなたのフォルダがある-ファイル

忘れないでください:(..二重ドット)。


二重ドットとスラッシュ(../file_path)を追加しました。それは私のために働いた。感謝
Vidhya 2018年

これら2つを追加する理由は何ですか..
Pardeep Jain

10

匿名認証の資格情報をアプリケーションプールIDに設定すると、私にとってはうまくいきました。

ここに画像の説明を入力してください


9

私も同じ問題に直面していました。いくつかのR&Dを行った後、問題はファイル名にあることがわかりました。実際のファイルの名前は「lightgallery.css」でしたが、リンク中に「lightGallery.css」と入力しました

より詳しい情報:

それは私のローカルホスト(OS:Windows 8.1&サーバー:Apache)でうまく機能しました。しかし、自分のアプリケーションをリモートサーバー(ローカルホストとは異なるOSおよびWebサーバー)にアップロードすると、機能せず、あなたと同じエラーが発生しました。

したがって、問題はサーバーの大文字と小文字の区別(ファイル名に関して)でした。


ありがとう、スペルミスで頭がおかしくなりました。
Nischal Kumar BC、2016年

7

他の回答に基づいて、このメッセージには多くの原因があると思われるので、将来誰かが正確に問題を抱えた場合に備えて、個別の解決策を共有したいと思いました。

私たちのサイトは、AWS CloudfrontディストリビューションからCSSファイルをロードし、S3バケットをオリジンとして使用しています。この特定のS3バケットは、Jenkinsを実行しているLinuxサーバーとの同期が維持されていました。sync介したコマンドs3cmdセットに自動的にOSが言うに基づいてS3オブジェクトのContent-Typeの(おそらく、ファイル拡張子に基づいて)。なんらかの理由で、サーバーでは、型を指定した.cssファイルを除いて、すべての型が正しく設定されていましたtext/plain。S3では、ファイルのプロパティでメタデータを確認するときに、タイプを任意に設定できます。これを設定してtext/css、サイトがファイルをCSSとして正しく解釈し、正しくロードできるようにします。


6

nginxで静的CSSを提供する場合は、追加する必要があります

location ~ \.css {
    add_header  Content-Type    text/css;
}
location ~ \.js {
    add_header  Content-Type    application/x-javascript;
}

または

location ~ \.css{
    default_type text/css;
}
location ~ \.js{
    default_type application/x-javascript;
}

nginx confへ


5

@Rob Sedgwickの答えは私に指針を与えましたが、私の場合、私のアプリはSpring Boot Applicationでした。そのため、関係するファイルへのパスの除外をSecurity Configに追加しました...

注-このソリューションはSpringBootベースです...使用しているプログラミング言語や使用しているフレームワークによって、必要な作業が異なる場合があります

ただし、注意すべき点は次のとおりです。

本質的には、静的コンテンツのリクエストを含むすべてのリクエストが認証されるときに問題が発生する可能性があります。

したがって、エラーの原因となった静的コンテンツへのパスが次のとおりだとします。

「プラグイン」と呼ばれるパス

http:// localhost:8080 / plugins / styles / css / file-1.css

http:// localhost:8080 / plugins / styles / css / file-2.css

http:// localhost:8080 / plugins / js / script-file.js

そして「ページ」と呼ばれるパス

http:// localhost:8080 / pages / styles / css / style-1.css

http:// localhost:8080 / pages / styles / css / style-2.css

http:// localhost:8080 / pages / js / scripts.js

次に、Spring Boot Security Configに次のように除外を追加します。

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers(<comma separated list of other permitted paths>, "/plugins/**", "/pages/**").permitAll()
            // other antMatchers can follow here
    }

}


これらのパス"/plugins/**"を除外し"/pages/**"、認証から除外することで、エラーはなくなりました。


乾杯!


@Ben Rhys-Lewis ...なぜこれが質問だと思うのか、それともその質問のように見えるのかしら。おそらく、あなたは私の答えを十分に注意深く読んで、それが実際に答えであることを確認したいと思うでしょう-悲しいかな、私の場合うまくいったもので...そして間違いなく質問ではありません。
SourceVisor 2016年

すみません。どうしてこうなったのかよくわからないけど。私の謝罪を受け入れてください。
ベン・リス=ルイス


3

かなりのURLを作成するための同じ.htaccessファイルで、同じことに直面していました。数時間見て回って実験してみました。私はエラーが比較的リンクしているファイルが原因であることがわかりました。

ブラウザは、サーバー内のいくつかの手順を閲覧すると、すべてのcss、js、およびimageファイルに対して同じソースhtmlファイルのフェッチを開始します。

これに対抗する<base>には、htmlソースでタグを使用するか、

<base href="http://localhost/assets/">

次のようなファイルにリンクします

<link rel="stylesheet" type="text/css" href="css/style.css" />
<script src="js/script.js"></script>

または、すべてのファイルに絶対リンクを使用します。

<link rel="stylesheet" type="text/css" href="http://localhost/assets/css/style.css" />
<script src="http://localhost/assets/js/script.js"></script>
<img src="http://localhost/assets/images/logo.png" />

3

JSPを使用している場合、この問題はサーブレットマッピングが原因である可能性があります。あなたのマッピングが次のようにデフォルトでURLを取る場合:

@WebServlet("/")

次に、コンテナはcssのURLを解釈し、cssファイルではなくサーブレットに移動します。

私は同じ問題を抱えていました、私は私のマッピングを変更し、今すべての作品


2

フォーム認証を使用するMVC4にも同様の問題があります。問題は、web.configのこの行でした。

<modules runAllManagedModulesForAllRequests="true">

つまり、静的コンテンツを含むすべてのリクエストが認証されます。

この行を次のように変更します。

<modules runAllManagedModulesForAllRequests="false">

2

ここに画像の説明を入力してください 私は最近、Chromeでもこの問題に直面しています。CSSファイルの問題解決への絶対パスを指定するだけです。

<link rel="stylesheet" href="<?=SS_URL?>arica/style.css" type="text/css" />

あなたは私をからかっているに違いありません。このソリューションを3回ほど却下しました。このページに何度も来ましたが、他のすべてを試してあきらめようとした後、私は「何がうまくいかないかもしれない」と言いました。出来た!!!生命の謎
Kermit_ice_tea 2018年

1

OPでトッドRのポイントを拡大したいです。asp.netページでは、web.configファイルはアプリケーションの各ファイルまたはフォルダーにアクセスするために必要なアクセス許可を定義します。私たちのケースでは、CSSファイルのフォルダーは許可されていないユーザーのアクセスを許可していなかったため、ユーザーが許可される前にログインページで失敗しました。許可さweb.configれた権限のないユーザーがCSSファイルにアクセスするために必要な権限を変更し、この問題を解決しました。


0

誰かがこの投稿に来て、同様の問題がある場合。私は同様の問題を経験しましたが、解決策は非常に簡単でした。

開発者が誤ってweb.configのコピーをCSSディレクトリにドロップしました。削除すると、すべてのエラーが解決され、ページが適切に表示されました。


編集してくれた@Rohit Guptaに感謝します。私の内部文法マネージャーが処理するよりも速くタイプしていた!=)
Hideous1 2015年

3
これはASP.NET固有のソリューションであり、問​​題の明白な部分ではありません。
ダカブ2016年

@dakabだから何?他の多くの回答もフレームワーク固有のものであり、同じ問題が発生しているフレームワークを使用する人々を支援してきました。
jsabrooke

0

古いMEANスタックプロジェクトの作業を再開しているときに同じ問題に遭遇しました。私はnodemonローカル開発サーバーとして使用していて、同じエラーが発生しましたResource interpreted as stylesheet but transferred with MIME type text/html。私はから変更nodemonhttp-server見つけることができるここに。すぐにうまくいきました。


0

これは、サーバーページ(php、node.jsなど)のコンテンツタイプをtext / cssではなくtext / htmlに設定する必要があるためです。


1
この問題は、htmlファイルではなくcssファイルに関するものでした
Max

0

これは、Google CDNによって提供されるCSSスタイルシートのCSSリンクからプロトコルを削除したときに発生しました。

これはエラーを与えません:

<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Architects+Daughter">

しかし、これはエラーResourceをスタイルシートとして解釈しますが、MIMEタイプtext / htmlで転送されます

<link rel="stylesheet" href="fonts.googleapis.com/css?family=Architects+Daughter">

0

私は同様の問題に直面していました。そして、この素晴らしいスタックオーバーフローページでソリューションを探索します。

user54861の応答(大文字と小文字の区別で名前が一致しない)により、コードを再度検査したいと思い、「ヘッドタグにロードした2つのjsファイルをアップロードしていません。:-)

それらをアップロードすると、問題が発生します!そして、コードが実行され、ページが別のエラーなしでレンダリングされます!

そのため、ページの探している場所にすべてのjsファイルがアップロードされていることを確認することを忘れないでください。


これは実際には質問の答えにはなりません。別の質問がある場合は、[ 質問する]をクリックして質問できます。賞金追加して、十分な評判を得たら、この質問にもっと注意を向けることもできます。- レビューから
Lemon Kazi 2017

開発者がサーバーにリソースをロードしなかった場合に、ECMAスクリプト設計者が関連するエラーまたは例外をJavaScriptに追加する手がかりになりませんか?「リソースはスタイルシートとして解釈されますが、MIMEタイプtext / htmlで転送される」とは少し混乱しますね。
Hossein Khalesi 2017

0

.NETアプリケーションであるMojoPortalと呼ばれるCMSオープンソースでも同じ問題に遭遇しました。特定のサイトの私のテーマとスキンの1つで、閲覧またはテストすると、窒息のように粉砕されて遅くなります。

私の問題はCSSの「type」属性ではなく、「それ以外のこと」でした。私の正確な変更はWeb.Configにありました。MinifyCSS、CacheCssOnserver、およびCacheCSSinBrowserのすべての値をFALSEに変更しました。

それが設定されると、Webサイトは再び本番環境で高速になりました。


0

最初に正しいヘッダーを送信するのを忘れたため、同じエラーが発生しました

header("Content-type: text/css; charset: UTF-8");
print 'body { text-align: justify; font-size: 2em; }';

0

ReactJsを使用して、次のような相対リンクを使用してスタイルファイルをindex.htmlに追加すると、

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

そして、私は言うルートに移動します。 localhost:3000/artist更新すると、エラーが発生します。

相対リンクを絶対リンクに置き換えた後、エラーは消えました。

<link rel="stylesheet" href="http://localhost/project/public/css/style.css"


私はこの問題、同じ環境を抱えていて、あなたの解決策を運なしで試しました。しかし、あなたは私に調査経路を示しました:-) CSSファイルをパブリックフォルダに移動した後、メッセージは消えました。一度やったら、絶対パスは必要ありませんでした。
フアンLanus

0

npmでインストールしたReactレイアウトモジュールのCSSを読み込むときに、この問題が発生しました。このモジュールを実行するには、2つの.cssファイルをインポートする必要があるため、最初は次のようにインポートしました。

@import "../../../../node_modules/react-grid-layout/css/styles.css";

しかし、ファイル拡張子を削除する必要があることがわかりましたので、これはうまくいきました:

@import "../../../../node_modules/react-grid-layout/css/styles";

0

もしnodejsと使用して表現し 、以下のコードの作品を...

res.set('Content-Type', 'text/css');

Node.JSに関連しているため、ここでコメントします。ホスティングプロバイダーでアプリを再起動する必要があった
Reed

0

私はまったく同じ問題を抱えており、数分たったらだまして、ヘッダーにファイル拡張子を追加するのに失敗したことがわかりました。だから私は次の行を変更しました:

<link uic-remove rel="stylesheet" href="css/bahblahblah">

<link uic-remove rel="stylesheet" href="css/bahblahblah.css"> 

0

Goormideコンテナー(node.js)の同じプロジェクト/ URLのサファリではなく、クロムでのみ問題が発生し始めました

機能していないように見える上記のいくつかの提案を試してみて、昨日から今日までのコードの変更をバックトラックしたところ、Chromeの設定をクリックすることになり、違いはありませんでした。

1.設定;

2.下にスクロールして、次を選択します。「詳細」;

3.下にスクロールして、次を選択します。「設定を元のデフォルトに戻す」;

コンソールに警告/エラーが表示されなくなり、ページが正しく表示されるようになったため、問題は解決したようです。上記の投稿を読むと、問題は任意の数のソースから発生する可能性があるため、設定のリセットは潜在的な一般的な修正です。乾杯


0

prodでアプリを提供している場合は、Service Workerで静的ファイルを提供していることを確認してください。DjangoでReactビルドの静的サブフォルダーのみを提供しているときにこのエラーが発生しました(スタイルを持つアセットなし)


0

Reactの使用

反応プロファイルアプリでこのエラーに遭遇しました。私のアプリは、存在しないURLを参照しようとしたような動作をしました。これは、webpackの動作と関係があると思います。

パブリックフォルダー内のファイルをリンクする場合は、次のようなリソースの前に%PUBLIC_URL%を使用することを忘れないでください。

<link type="text/css" rel="stylesheet" href="%PUBLIC_URL%/bootstrap.min.css" />
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.