Springboot - 资源解释为样式表,但使用 MIME 类型 text/html 传输

Posted

技术标签:

【中文标题】Springboot - 资源解释为样式表,但使用 MIME 类型 text/html 传输【英文标题】:Springboot - Resource interpreted as Stylesheet but transferred with MIME type text/html 【发布时间】:2017-10-12 02:13:27 【问题描述】:

好的,这里完全被难住了。我的启动应用程序没有提供任何静态资源。未应用 CSS,未加载图像。还没有安全性,所以我认为这不是问题。

检查我得到的控制台输出

Resource interpreted as Stylesheet but transferred with MIME type text/html

一切都是 200

但是,如果您查看响应...那不是引导程序

我相信我使用了正确的默认文件结构

代码如下:

Pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- WEB JARS -->
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>bootstrap</artifactId>
        <version>3.3.7-1</version>
    </dependency>
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jquery</artifactId>
        <version>3.2.0</version>
    </dependency>
    <!-- JDBC -->
    <dependency>
        <groupId>net.sourceforge.jtds</groupId>
        <artifactId>jtds</artifactId>
        <version>1.3.1</version>
    </dependency>
    <!-- LOGGING -->
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>4.7</version>
    </dependency>
    <!-- SCOPED JARS-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
    </plugins>
        <finalName>$project.artifactId</finalName>
</build>

模板/index.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en" th:include="fragments/headerinc :: head">
    <title>Demo App</title>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/>
</head>
<body>
<div class="container-fluid">
    <nav class="navbar navbar-inverse navbar-static-top">
        <div class="container-fluid">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed"
                        data-toggle="collapse">
                    <span class="sr-only">Toggle navigation</span> <span
                        class="icon-bar"></span> <span class="icon-bar"></span> <span
                        class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">
                    <img style="width: 75px;" th:src="@~/images/logo.png"/>My APP</a>
            </div>
            <div id="navbar5" class="navbar-collapse collapse">
                <ul class="nav navbar-nav navbar-right">
                    <li class="active"><a href="#">Home</a></li>
                    <li><a href="#">Journal</a></li>
                    <li><a href="#">Etc</a></li>
                </ul>
            </div>
        </div>
    </nav>
</div>

模板/片段/headerinc.html

<!DOCTYPE HTML>
<html  xmlns:th="http://www.thymeleaf.org">
<head lang="en" th:fragment="head">
    <meta http-equiv="content-type" content="text/html" charset="UTF-8"/>
    <link href="http://cdn.jsdelivr.net/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css"
          th:href="@/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css"
          rel="stylesheet" media="screen" />
    <link href="../css/styles.css"  th:href="@/css/styles.css"
          type="text/css" rel="stylesheet" media="all"/>
</head>
<body>
</body>
</html>

任何建议将不胜感激!

【问题讨论】:

你有added a resource handler 的/webjars/** 模式吗? 它错误地提供了所有静态内容。例如 localhost/css/styles.css 不会给出 404 而是呈现 index.html。 你是怎么解决这个问题的? 【参考方案1】:

如果通过使用 maven 依赖项来使用 Webjars,即使 uri 只是一个 /,您的控制器请求方法也应该指定该 value ,如下所示。

@RequestMapping(value = "/")
public String index() 
    return "welcome";

但是如果你将所有 CSSJS 放在 resources/static 文件夹中,spring 会自动发送相应的响应。

【讨论】:

以上是关于Springboot - 资源解释为样式表,但使用 MIME 类型 text/html 传输的主要内容,如果未能解决你的问题,请参考以下文章

资源解释为样式表,但使用 mime 传输

Wordpress 样式表问题:资源解释为样式表,但使用 MIME 类型传输

Wordpress 资源解释为样式表,但使用 mime 类型 text/html 传输

Flask:资源解释为样式表,但使用 MIME 类型 text/html 传输

资源解释为样式表,但使用 MIME 类型 text/javascript 传输

资源解释为样式表,但使用 MIME 类型 text/html 传输