我正在尝试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
我没有在任何地方看到它不起作用所以我想知道我错过了什么?
谢谢,
答案 0 :(得分:3)
以下CSS文件引用(注意:UnmappedResourceHandler不支持该库!这是技术限制,只使用名称):
<h:outputStylesheet name="css/style.css" />
技术限制是否则无法从CSS文件内部相对引用资源。使用库时,路径/default
将移动到查询参数?ln=default
,然后CSS文件将在错误的相对文件夹/resources/css
而不是{{1}中查找相对图像引用}。
你有两个选择:
手动将版本附加到查询字符串。
/resources/default/css
您甚至可以为此编写另一个自定义资源处理程序。
使用基于文件名的版本控制。
<h:outputStylesheet name="default/css/style.css?#{app.version}" />
这只是丑陋的。
无论如何,最后只需删除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
:
文件夹即可。