gpt4 book ai didi

java - 从 CSS/JS 文件中访问 servlets web 应用程序上下文 URL

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:46 24 4
gpt4 key购买 nike

我们如何从 Java Web 服务器上的 CSS/JS 文件中访问 Web 应用程序上下文 URL?

我们可以使用 url('../img/bg.gif') 等相对映射 URL(例如背景图像),但这不适用于具有如下映射的 Web 应用程序:

  • /商店/
  • /shop/show/3/
  • /商店/付款/

因为浏览器会搜索相对于当前“虚拟”目录的这个文件。

此外,我们不能像 url('/images/bg.gif') 那样将图片 URL 全局映射,因为我们强制部署在顶级目录example.com/(不是 example.com/myproject/)。

如何在更改应用程序上下文 URL 时避免更改 CSS/JS(ajax) URL?是否可以通过简单的方式访问 CSS 文件中的应用程序上下文,例如访问服务于这些静态文件的默认 servlet 中的 contextPath?

最佳答案

您可以这样做(假设您使用的是 Tomcat,如果不是,请查找文档以找到正确的 servlet 名称以添加映射):

<servlet> 
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>

然后你可以在你的css中添加jsp el代码:

url('${pageContext.request.contextPath}/images/bg.gif')

这将使您的 CSS 文件服务速度变慢,因此请考虑是否可以在根目录下使用绝对路径来实现。我们在允许 CSS 皮肤的应用程序中使用了这种方法,以便我们可以输出自定义配色方案。

关于java - 从 CSS/JS 文件中访问 servlets web 应用程序上下文 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18982361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com