我在Ruby和Java世界都在工作。我受到了merb-assets项目的启发,该项目提供了各种功能,可以轻松引用位于子域(或CDN)上的资产(图像,CSS等)。
我想在Java中做同样的事情:
<c:url>
或Struts 2的<s:url value=""/>
标记来引用资产。是否有任何taglib(或其他方法)可以帮助解决这个问题?每次插入<c:if
或localhost
标记时,我都不想特别想用<img>
和<link>
测试我的观点。
我正在使用Struts 2 + JSP。
答案 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