我们使用JAWR来捆绑 CSS 和 Javascript。它极大地减少了下载的点击数和字节数。但是,我们最近遇到了一个问题,导致不受“其控制”的 css 文件返回“未找到”(404)代码。我们有一个解决方案,但我想知道是否有更好的解决方案。
我们为标准的 css 文件集定义了一个 CSS 包,并使用它来加载它。我们还有一些非标准的 css 文件,包括一对定义“遗留”布局的文件。它们装有 . 最后,服务 CSS 的 JAWR servlet 绑定到 web.xml 中的 url-pattern "*.css"。使用此配置,任何来自标签的 css 文件请求都会返回 404 代码。我们找不到可以解决问题的 JAWR 属性设置组合。
我们想出的解决方案是在 web.xml 中修改 JAWR servlet 配置,添加“mapping”参数:
<servlet>
<servlet-name>CssServlet</servlet-name>
<servlet-class>net.jawr.web.servlet.JawrServlet</servlet-class>
<init-param>
<param-name>configLocation</param-name>
<param-value>/jawr.properties</param-value>
</init-param>
<init-param>
<param-name>type</param-name>
<param-value>css</param-value>
</init-param>
<init-param>
<param-name>mapping</param-name>
<param-value>/jawrcss/</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
我们将 CssServlet 的 url 模式更改为“/jawrcss/*”。通过此更改,从未修改的标签加载的 css 文件不会被 JAWR 触及。但是,我们失去了 JAWR 对这些文件的压缩能力。
我的猜测是,为了让 JAWR 正确处理这些文件,我们需要将标签更改为标签,此时 JAWR 的“孤儿”处理将做正确的事情。这是有问题的(至少)有几个原因。(1) 我们使用共享代码库并且“不能”修改某些文件,因为共享这些文件的其他人没有使用 JAWR。(2) 一些文件使用 JavaScript 动态加载 css,我不知道如何将它与 JAWR 支持结合起来。
那么,我的问题是什么?
- 有没有办法让 JAWR 处理(至少压缩)从标签加载的 CSS 文件?(主要问题。)
- 有没有办法将 JAWR 与 Javascript 加载的 CSS 一起使用?