当我加载我的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框架。
答案 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
中的逻辑来允许或忽略资源来解决此问题。