我在一个网站上工作,使用Gulp.js来编译和浏览器同步,以保持浏览器与我的更改同步。

Gulp.js任务正确地编译了所有内容,但在网站上,我无法看到任何样式,控制台显示以下错误消息:

拒绝应用样式 “http://localhost:3000/assets/styles/custom-style.css”,因为它 MIME类型('text/html')不是受支持的样式表MIME类型,并且 启用严格的MIME检查。

我真的不明白为什么会这样。

HTML包含如下文件(我很确定这是正确的):

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

现在样式表是Bootstrap和Font Awesome样式的合并(还没有自定义)。

路径也是正确的,因为这是文件夹结构:

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

但是我总是得到错误。

会是什么呢?这是gulp/browsersync的一些东西(也许是一个设置?)


当前回答

我认为,问题在于CSS库从注释开始。

在开发过程中,我没有缩小文件,也没有删除注释。这意味着样式表以一些注释开始,导致它被视为与CSS不同的东西。

删除库并将其放入供应商文件(该文件总是最小化,没有注释)解决了这个问题。

同样,我不能100%确定这是一个修复,但它仍然是我的胜利,因为它的工作正如预期的现在。

其他回答

请检查你的文件名是否有错别字。这发生在我身上:

style.css.css

正如在这篇文章中提到的解决方案,一些解决方案为我工作,但CSS不适用于页面。

简单地说,我只是把“css”目录移动到“资产/”目录,一切都很好。

<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="assets/css/site.css" >

我在Angular中遇到了这个错误。我解决这个问题的方法是在我的link元素上放一个ngIf,这样它就不会出现在DOM中,直到我的动态URL被填充。

这可能和问题有点不相关,但我最终在这里寻找答案。

<link *ngIf="cssUrl" rel="stylesheet" type="text/css" [href]="sanitizer.bypassSecurityTrustResourceUrl(cssUrl)">

在一长串的答案中,这个问题也发生在我身上,因为从浏览器同步的角度来看,我没有意识到路径是错误的。

给出这个简单的文件夹结构:

package.json
app
  |-index.html
  |-styles
          |-style.css

index.html文件中<link>中的href属性必须是app/styles/style.css而不是styles/style.css。

我遇到过这个问题,在向Azure B2C用户流添加自定义外观时遇到了同样的问题。我发现HTML页面引用的根是../oauth/v2(即oauth服务器路径)而不是我的存储bob的路径。

使用页面的完整URL为我解决了这个问题。