4

当我加载我的 jsp 页面时,附加的 css 和 js 文件被呈现为 text/html 格式。我从 chrome 浏览器中注意到它,我可以在其中看到此错误消息

“资源解释为脚本,但使用 MIME 类型 text/html 传输”

我在 web.xml 中指定了 mime 类型,如下所示,

    <mime-mapping>    
        <extension>js</extension>        
        <mime-type>application/javascript</mime-type>        
    </mime-mapping>

    <mime-mapping>    
        <extension>css</extension>        
        <mime-type>text/css</mime-type>        
    </mime-mapping>
    <mime-mapping>    
        <extension>jpg</extension>        
        <mime-type>image/jpeg</mime-type>        
    </mime-mapping>

我运行应用程序的服务器是 Apache Tomcat 7。我在 Vaadin 项目中创建了这个 JSP 文件。

我的问题是,我是否需要在 Tomcat 配置的其他地方更改 Mime 类型?在 JSP 页面中包含 CSS 和 JS 文件是否有任何限制?
还是因为 Vaadin 框架?

我只是一个尝试学习 JSP 和 vaadin 框架的初学者。

4

2 回答 2

4

我终于找到了这个问题的原因。我只是通过更改默认 url 映射来修复 web.xml

例如。从默认值如下

<servlet-mapping>
    <servlet-name>My Application</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>My Application</servlet-name>
    <url-pattern>/home/*</url-pattern>
</servlet-mapping>

更改后,我仍然遇到一个错误,我通过添加来修复

<servlet-mapping>
<servlet-name>My Application</servlet-name>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>

这在 Vaadin 之书第 4.8 节中有所介绍 https://vaadin.com/book/-/page/application.environment.html

于 2012-07-14T05:52:18.397 回答
0

就我而言,我有一个过滤器,web.xml可以过滤所有内容。(它会根据 IP 地址重定向到某个页面。)

<filter-mapping>
    <filter-name>RedirectFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

使用此过滤器映射,所有请求(包括图像、样式表、脚本等)都会通过过滤器。filter-mapping您可以通过从您的中删除web.xml或检查中的逻辑filter-class以允许或忽略资源来修复它。

于 2015-10-22T16:54:16.160 回答