.js和.css文件在我的JSP页面中作为text / html加载。

时间:2012-07-14 01:43:00

标签: javascript jsp mime-types tomcat7 vaadin

当我加载我的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 Project中创建了这个JSP文件。

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

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

2 个答案:

答案 0 :(得分:4)

我终于找到了这个问题的原因。我刚刚修改了web.xml,修改了默认的url映射

例如。 从默认值如下

<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

答案 1 :(得分:0)

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

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

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