JAWR覆盖未绑定文件的加载

JAWR覆盖未绑定文件的加载,jawr,Jawr,我们正在使用它捆绑CSS和Javascript。它极大地减少了点击次数和下载的字节数。然而,我们最近遇到了一个问题,导致未“在其控制下”的css文件返回“未找到”(404)代码。我们有一个解决办法,但我想知道是否有更好的办法 我们为标准的CSS文件集定义了一个CSS包,并使用它来加载它。我们还有一些非标准css文件,包括一对定义“遗留”布局的文件。它们装满了水。最后,服务CSS的JAWR servlet被绑定到web.xml中的url模式“*.CSS”。使用此配置,任何来自标记的css文件请求都

我们正在使用它捆绑CSS和Javascript。它极大地减少了点击次数和下载的字节数。然而,我们最近遇到了一个问题,导致未“在其控制下”的css文件返回“未找到”(404)代码。我们有一个解决办法,但我想知道是否有更好的办法

我们为标准的CSS文件集定义了一个CSS包,并使用它来加载它。我们还有一些非标准css文件,包括一对定义“遗留”布局的文件。它们装满了水。最后,服务CSS的JAWR servlet被绑定到web.xml中的url模式“*.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
net.jawr.web.servlet.JawrServlet
配置位置
/jawr.properties
类型
css
映射
/jawrcss/
2.
我们将CssServlet的url模式更改为“/jawrcss/*”。通过此更改,JAWR不会接触从未修改的标记加载的css文件。但是,我们失去了JAWR对这些文件的压缩能力

我的猜测是,为了让JAWR正确处理这些文件,我们需要将标记更改为标记,此时JAWR的“孤立”处理将做正确的事情。这是有问题的(至少)几个原因。(1) 我们正在使用共享代码库,并且“无法”修改某些文件,因为共享这些文件的其他文件没有使用JAWR。(2) 有些文件使用JavaScript动态加载css,我不知道如何将其与JAWR支持结合起来

那么,我的问题是什么

  • 有没有办法让JAWR处理(至少压缩)CSS文件从标签加载?(主要问题)
  • 有没有一种方法可以将JAWR与加载Javascript的CSS一起使用
  • 对于javascript加载的CSS(或者JS),您可以使用JAWR的脚本加载程序(这里解释-)。请记住,使用脚本加载器有一个折衷办法(上面提到的页面的最后一段描述了这一点)


    关于你的问题1),你所说的标签是指哪些标签?JSP标记?

    您可以使用servlet的映射
    ,并将servlet绑定到该url

    示例来自:

    。。。
    JavascriptServlet
    net.jawr.web.servlet.JawrServlet
    配置位置
    /jawr.properties
    映射
    /jsJawrPath/
    1.
    ...
    JavascriptServlet
    /jsJawrPath/*
    
        ...
        <servlet>
                <servlet-name>JavascriptServlet</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>mapping</param-name>
                        <param-value>/jsJawrPath/</param-value>
                </init-param>
                <load-on-startup>1</load-on-startup>
        </servlet>
        ...
    
        <servlet-mapping>
                <servlet-name>JavascriptServlet</servlet-name>
                <url-pattern>/jsJawrPath/*</url-pattern>
        </servlet-mapping>