1

我在 Ruby 和 Java 领域工作。我受到了merb-assets项目的启发,该项目提供了各种功能,可以轻松引用位于子域(或 CDN)上的资产(图像、CSS 等)。

我想在 Java 中做同样的事情:

  • 开发和测试中,我想使用 JSTL<c:url>或 Struts 2 的<s:url value=""/>标签来引用资产。
  • 但在生产中,我想将这些资产中的大部分移到一个单独的子域(或 CDN)中。

是否有任何标记库(或其他方法)可以帮助解决这个问题?每次我插入or标记时,我都不想用<c:if和测试来浪费我的观点。localhost<img><link>

我正在使用 Struts 2 + JSP。

4

1 回答 1

1

我真的不知道 Struts 2,但我正在考虑一个涉及使用 Maven2 功能的解决方案......所以,如果你确实使用 Maven2 来构建你的应用程序,你可以用资源过滤器解决你的问题和配置文件功能。

资源过滤:您可以要求 Maven2 过滤资源文件(在我们的例子中是 JSP 文件)。过滤器意味着用它们的值替换所有 ${xxx}。这对于将参数(例如 ${domain.url})替换为您需要的值(“localhost”、“http://...”)很有用。

然后,您定义 2 个配置文件:“开发测试”和“生产”。每个配置文件将为这些资产定义自己的域。例如,在开发测试中,您可以将域定义为“localhost”,在生产中,域将是“http://....”。

我不确定这是否可以解决您的问题,但您可以尝试一下:o)

参考:过滤器资源:http ://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html 配置文件:http://maven.apache.org/guides/introduction/introduction-to-profiles。 html

于 2008-10-13T14:45:06.107 回答