MIME-TYPE 异常 Main.css Spring Boot

Posted

技术标签:

【中文标题】MIME-TYPE 异常 Main.css Spring Boot【英文标题】:MIME-TYPE Exception Main.css Spring Boot 【发布时间】:2020-07-20 02:44:56 【问题描述】:

我真的很困惑如何解决这个错误。对于不同的情况,有许多假设的解决方案似乎并不直接适用于我。希望当我找到这个问题的答案时,我能理解这里到底发生了什么。请注意我正在为这个项目使用 Spring Boot

问题

我已成功地将 Sass 实施到我的项目中,并且它似乎工作正常。我可以在 pom.xml 中指定源文件夹和目标文件夹。但是,每当我尝试在我的 html 文件中引用 CSS 文件时,我都没有成功。我在 Chrome 开发工具中看到的错误是这样的:

Refused to apply style from 'http://localhost:8080/css/main.css' because its MIME type ('application/json') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

这是我搜索的结果:

Stylesheet not loaded because of MIME-type Q #1 我最初搜索了具体的错误并收到了这个 *** 帖子。链接的答案表明他认为问题与以 cmets 开头的 CSS 库有关。我相信他认为由于某些 cmets,MIME 类型发生了变化。所以我试图删除我最终的 css 文件中的所有 cmets。再一次,没有运气。 Stylesheet not loaded because of MIME-type Q #2 同一篇文章的另一个较低答案指出,当您没有正确引用您的 CSS 文件时,可能会出现错误。我相信很可能是这种情况,但我不完全理解我的 spring-boot 设置是如何处理静态文件的,或者它是否因为缺乏配置而根本没有这样做。 Stylesheet not loaded because of MIME-type Q#3 这个答案进一步证实了我的 CSS 文件路径错误并且它正在返回的情况 “status: 404 带有一些 HTML 类型的 Not Found 内容有效负载”。因此,它为什么会返回 MIME 类型的异常是有道理的。 MIME type ('text/html') is not a supported stylesheet MIME type这个问题似乎是针对与Spring-Boot无关的东西,所以我得出结论,它对我没有太大帮助。

在没有成功解决 MIME 类型异常后,我意识到我可能没有完全理解在 Spring-Boot 环境中如何公开资源,因此我搜索了有关此的信息:

CSS not loading in Spring Boot how add css and js to spring boot application? Where to put static files such as CSS in a spring-boot project?

这些问题的大部分答案都需要禁用 @EnableWebMVC 以允许 Spring-Boot 的自动配置。但是,我一直关注的教程使用了@EnableWebMVC,我不想尝试使用更复杂的方法来配置 WebSecurityConfigurer,尤其是因为我仍然不明白如何使用基本方法。

我的下一个理论是 Spring Boot Security 可能会限制对 css 文件的访问。

Spring security does not allow CSS or JS resources to be loaded 我尝试使用各种安全权限,但无法正常工作。

文件结构

File Structure

源代码

您可以在存储库中找到所有相关代码:https://github.com/CloakingOcean/CampaignChronicle

感谢您花时间帮助我的人!我真的很想在春季开发中取得进步,在你们所有人的帮助下,我可能会!

【问题讨论】:

投票结束(但没有反对),因为代码需要在这个问题本身中。在这种情况下,我们需要从您那里看到与“资源”或“解析器”相关的任何引导属性或配置,或者您拥有的处理此路径的任何控制器。 【参考方案1】:

啊,我发现我的错误了。我的项目依赖于 Thymeleaf

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

因此,Spring Boot 公共资产需要 thyme Leaf 相关配置。

这篇文章:Thymeleaf + CSS+SpringBoot,展示了如何使用 Thymeleaf 设置默认 Thymeleaf 结构,以及如何链接 HTML 文档中的文件。然而,不幸的是,我确实需要禁用@EnableWebMVC。我将不得不发现我的项目中有哪些重大变化是由此产生的。

&lt;link href="../static/css/Layout.css" th:href="@/css/Layout.css" rel="stylesheet" /&gt;

【讨论】:

以上是关于MIME-TYPE 异常 Main.css Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

如何找到文件“mime-type(Content-Type?)”?在 Windows 上

PHP 获取文件mime-type

访问 Apache 的 Mime-Type 到扩展映射

通过后缀名和MIME-TYPE检查实现文件类型校验

支持 html5-video-tag,但不支持 mime-type - 提供替代链接

服务器上的 PHP 文件上传将 mime-type 更改为 application/octet-stream