【问题标题】:Does UnmappedResourceHandler work for library versioning?UnmappedResourceHandler 是否适用于库版本控制?
【发布时间】:2015-01-09 15:57:32
【问题描述】:

我正在 OmniFaces 中试用 UnmappedResourceHandler,最初我的所有资源都在一个目录结构下,例如:

WebContent
 |-- resources
 |    `-- default
 |         `-- 1_0
 |              |-- css
 |              |    `-- style.css
 |              |-- img
 |              |    `-- logo.png
 |              `-- js
 |                   `-- script.js

UnmappedResourceHandler 不适用于版本控制,而是可以使用:

WebContent
 |-- resources
 |    `-- default
 |        |-- css
 |        |    `-- style.css
 |        |-- img
 |        |    `-- logo.png
 |        `-- js
 |             `-- script.js

我没有在任何地方看到它不起作用,所以我想知道我错过了什么吗?

谢谢,

【问题讨论】:

    标签: jsf jsf-2 versioning omnifaces unmappedresourcehandler


    【解决方案1】:

    javadocshowcase 中提到。

    以及以下 CSS 文件参考(注意:UnmappedResourceHandler 不支持该库!这是技术限制,仅使用名称):

    <h:outputStylesheet name="css/style.css" />
    

    技术限制是,否则无法从 CSS 文件中相对引用资源。使用库时,路径 /default 将移动到查询参数 ?ln=default,然后 CSS 文件将在错误的相对文件夹 /resources/css 而不是 /resources/default/css 中查找相对图像引用。

    你有两个选择:

    1. 手动将版本附加到查询字符串。

      <h:outputStylesheet name="default/css/style.css?#{app.version}" />
      

      您甚至可以为此编写另一个自定义资源处理程序。

    2. 使用基于文件名的版本控制。

      WebContent
       |-- resources
       |    `-- default
       |        |-- css
       |        |    `-- style.css (this is a folder!)
       |        |         `-- 1_0.css
       |        |-- img
       |        |    `-- logo.png (this is a folder!)
       |        |         `-- 1_0.png
       |        `-- js
       |             `-- script.js (this is a folder!)
       |                  `-- 1_0.js
       :
      

      只是更丑。

    无论如何,请随意删除最后的/default 文件夹。

    【讨论】:

    • 对不起,我读过但不知道库属性与版本号有关
    猜你喜欢
    • 2010-09-06
    • 2015-08-13
    • 1970-01-01
    • 2019-05-28
    • 2023-03-17
    • 2011-01-25
    • 2017-09-23
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多