如何在生产中引用来自不同子域(或CDN)的资产?

时间:2008-10-13 03:49:49

标签: java deployment struts2 subdomain cdn

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

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

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

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

我正在使用Struts 2 + JSP。

1 个答案:

答案 0 :(得分:1)

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

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

然后,您定义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