2012-07-14 111 views
3

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

“资源解释为脚本,但使用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框架的初学者。

回答

3

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

0

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

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

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