0

我正在开发一个 Spring MVC 3.2.4.FINAL 应用程序,并使用 JSP 文件作为我的视图技术。我的部分设计在我的 css 样式表中使用了 imgs/etc。

前任:

.main #footer #footerlist {
    background: url( /resources/images/main-foot_impersonating.jpg ) no-repeat !important;
}

当然,问题在于没有暴露上下文路径。我需要将其编码为:

.main #footer #footerlist {
    background: url( /contextRoot/resources/images/main-foot_impersonating.jpg ) no-repeat !important;
}

但是,在理想情况下,我不想硬编码上下文根,并让 Spring 自动为我生成它。在一个普通的 JSP 文件中,我可以这样写:

<spring:url value="/resources/images/main-foot_impersonating.jpg" />

当然,我意识到我可以将我的 css 重命名为 .css.jsp 以强制 JSP 引擎对其进行编译,然后将其编码为 jsp 页面,但我想知道是否还有其他技术/解决方案。

我想我一定不是第一个需要在 CSS 文件中包含一些应用程序值的人。

4

2 回答 2

0

我记得在一个项目上做过这样的事情。

我们制作了一个 spring 控制器映射到 css 或 css 内的资源(图像),控制器添加了正确的上下文。

于 2013-10-29T17:50:42.033 回答
0

这不是一个硬性规定,但通常最好的做法是让你的 css 文件中的任何 url 都是相对的而不是绝对的。这样他们就永远不需要知道他们被部署在哪里并且“只是工作”。有关此问题的另一个 stackoverflow 讨论,请参见此处:绝对与相对 URL

于 2013-10-29T17:58:42.157 回答