.js和.css文件正在我的JSP页面中以text/html的形式加载

.js and .css files are loading as text/html in my JSP page.

本文关键字:text html 加载 文件 css JSP 我的 js      更新时间:2023-09-26

当我加载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>

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

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

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

我终于找到了这个问题的原因。我刚刚通过更改默认的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>

这在《瓦丁书》第4.8节中有介绍https://vaadin.com/book/-/page/application.environment.html

在我的情况下,我的web.xml中有一个过滤器,可以过滤所有内容。(它根据IP地址重定向到某个页面。)

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

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