【问题标题】:How do I reference assets from a different subdomain (or CDN) in production?如何在生产中引用来自不同子域(或 CDN)的资产?
【发布时间】:2008-10-13 03:49:49
【问题描述】:

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

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

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

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

我正在使用 Struts 2 + JSP。

【问题讨论】:

    标签: java deployment struts2 subdomain cdn


    【解决方案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

    【讨论】:

    • 我完全投入到使用 Maven 2 中,所以这个解决方案看起来很有趣(尽管与我设想的解决方案完全不同!)。 2个问题:1.过滤与JSTL变量冲突吗? 2. 如果我希望我的 JSP 保留在我的 WEB-INF/ 文件夹中,我该如何配置?
    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2017-06-07
    • 2014-05-30
    • 2015-02-06
    相关资源
    最近更新 更多