htmlcssgulpmime-typesbrowser-sync

Stylesheet not loaded because of MIME type


I'm working on a website that uses Gulp.js to compile and browser sync to keep the browser synchronised with my changes.

The Gulp.js task compiles everything properly, but on the website, I'm unable to see any style, and the console shows this error message:

Refused to apply style from 'http://localhost:3000/assets/styles/custom-style.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

Now, I don't really understand why this happens.

The HTML includes the file like this (which I am pretty sure is correct):

<link rel="stylesheet" type="text/css" href="assets/styles/custom-style.css"/>

And the style sheet is a merge between Bootstrap and Font Awesome styles for now (nothing custom yet).

The path is correct as well, as this is the folder structure:

index.html
assets
|-styles
  |-custom-style.css

But I keep getting the error.

What could it be? Is this something (maybe a setting?) for gulp/browsersync maybe?


Solution

  • The issue, I think, was with a CSS library starting with comments.

    While in development, I do not minify files and I don't remove comments. This meant that the stylesheet started with some comments, causing it to be seen as something different from CSS.

    Removing the library and putting it into a vendor file (which is ALWAYS minified without comments) solved the issue.

    Again, I'm not 100% sure this is a fix, but it's still a win for me as it works as expected now.