我想要一个css文件,它实际上是一个jsp页.原因之一是我想使用c:url标记使图像的路径与上下文无关.
到目前为止,我只发现可以在server.xml中进行设置.但是我只需要在我的webapp中使用它,而不需要在服务器范围内使用.
更新:将内容类型设置为text / css当然可以.但这仍然给我留下了style.jsp,而我希望文件被命名为style.css.原因之一是Eclipse的语法高亮显示和自动完成功能可以正常工作.
最佳答案
文件扩展名实际上是无关紧要的.关键是HTTP
Content-Type
标头.浏览器使用此信息以适当的方式处理响应.
将其放在您的CSS JSP文件顶部:
<%@ page contentType="text/css" %>
而已.
如果您不手动设置HTTP Content-Type标头,则设置Content-Type标头的工作将由servlet容器/ Web服务器接管.然后,此部分将嗅探文件扩展名以设置适当的标头.
更新:根据您的更新,无论如何您都想使用.css扩展名来利用IDE的突出显示和自动补全功能.然后还有另一种方法:将CSS文件映射到JspServlet的servlet名称上,因为它是在特定的servlet容器中定义的.对于Tomcat,通常是jsp.
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>/style.css</url-pattern>
</servlet-mapping>
但是,您应该考虑到Webapp的行为现在将取决于所涉及的servlet容器.可能存在不使用jsp作为servlet名称的servlet容器.