spring-security 拒绝应用样式,因为不支持其MIME类型('application/json')

puruo6ea  于 2022-11-11  发布在  Spring
关注(0)|答案(6)|浏览(372)

我想用fullcalendar库,用gulp和yarn这是生成的链接标记:
但我在控制台中得到这个错误:
拒绝套用'http://localhost/bower_components/fullcalendar/dist/fullcalendar.css'的样式,因为其MIME类型('application/json')不是支援的样式表MIME类型,而且已启用严格MIME检查。
为什么我会得到这个问题,我该如何解决它?

fhity93d

fhity93d1#

在我的情况下,我发现我有一个错字在css文件名。因此,我试图导入一个不存在的文件。

c3frrgcw

c3frrgcw2#

你的应用程序正在提供 fullcalendar.cssMIME类型(“application/json”)是错误的。所以,我的建议是在错误消息中挖掘问题。
在我的例子中,我第一次尝试使用Spring启动的
ThymeleafWebJars**,并盲目地遵循我添加的一些教程:

@Configuration
public class WebConfigurer extends WebMvcConfigurerAdapter {

  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/webjars/**").addResourceLocations("/webjars/");
  }
}

此外,我的样式是在html中定义的,如下所示:

<link rel="stylesheet" type="text/css" th:href="@{/webjars/bootstrap/css/bootstrap.min.css}" />
<link rel="stylesheet" type="text/css" th:href="@{/css/main.css}" />

这样,“bootstrap.min.css”和其他文件就会出现同样的错误:* “拒绝应用样式,因为其MIME类型('application/json')不受支持”*。
我还没有分析出这种行为的原因,但是当我意识到spring-boot有一个WebJars的自动配置时,我删除了那个注册,一切都开始正常工作。

注意:有一些类似的“MIME type('text/html')”的曲目,原因通常是安全过滤器不允许css文件,并重定向到html登录页面。因此,请记住这一点,并检查您是否有针对此请求的某种过滤器/重定向。

bxgwgixi

bxgwgixi3#

直接将URL放到浏览器中,看看是否可以访问它。
对于您的情况,请在浏览器中给予以下URL:http://localhost/bower_components/fullcalendar/dist/fullcalendar.css
如果你不能达到它,那么你有错误的网址在你的代码.
对于我的例子,我在一个名为css的目录中有css文件,但是在我写的代码中,我得到了同样的错误。
另外,别忘了给予type=“text/css”
所以,我的代码示例如下:

<head>
    <link rel="stylesheet" type="text/css" th:href="@{/css/app.css}">
</head>
pn9klfpd

pn9klfpd4#

如果您使用的是Sping Boot ,您甚至不必覆盖addResourceHandlers(),只需确保使用th:href并将其指向正确的目录即可。

ffscu2ro

ffscu2ro5#

在我的例子中,在css文件中有一个对map文件的引用

/*# sourceMappingURL=bootstrap-datepicker.css.map */

这是不存在的。我删除了对源Map的引用并开始工作。

eoigrqb6

eoigrqb66#

您可以尝试使用静态内容的相对路径。

<head>
    <link rel="stylesheet" type="text/css" href="../css/app.css">
</head>

相关问题