JAWR отменяет загрузку разделенных файлов - PullRequest
0 голосов
/ 07 июля 2010

Мы используем JAWR для объединения CSS и Javascript.Это значительно уменьшило количество скачанных хитов и байтов.Однако недавно мы столкнулись с проблемой, которая заставила CSS-файлы, которые не были «под его контролем», возвращать код «not found» (404).У нас есть решение, но мне интересно, есть ли лучшее.

Мы определили пакет CSS для стандартного набора CSS-файлов и используем его для загрузки.У нас также есть несколько нестандартных CSS-файлов, включая пару, которые определяют «устаревший» макет.Они загружены.Наконец, сервлет JAWR, обслуживающий CSS, был связан с URL-шаблоном "* .css" в web.xml.При такой конфигурации любой запрос файла css от тега возвращает код 404.Нам не удалось найти комбинацию настроек свойств JAWR, которая бы решала проблему.

Решение, которое мы нашли, состояло в том, чтобы изменить конфигурацию сервлета JAWR в файле web.xml, добавив параметр "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>

Мы изменили шаблон URL для CssServlet на "/ jawrcss / *".С этим изменением файлы css, загруженные из неизмененных тегов, не затрагиваются JAWR.Однако мы теряем возможности сжатия JAWR для этих файлов.

Я предполагаю, что для того, чтобы JAWR правильно обрабатывал эти файлы, нам нужно поменять теги на теги, и в этот момент обработка JAWR "сирота" сделаетправильная вещь.Это проблематично по (по крайней мере) нескольким причинам.(1) Мы используем базу общего кода и «не можем» изменять некоторые файлы, потому что другие, использующие эти файлы, не используют JAWR.(2) Некоторые файлы загружают css динамически, используя JavaScript, и я не вижу, как совместить это с поддержкой JAWR.

Итак, каков / является мой вопрос / ы?

  1. Есть ли способ, чтобы JAWR обрабатывал (по крайней мере, сжимал) CSS-файлы, загружаемые из тегов?(Основной вопрос.)
  2. Есть ли способ использовать JAWR с загруженным Javascript CSS?

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Для CSS, загруженного JavaScript (или JS), вы можете использовать загрузчик скриптов JAWR (объяснено здесь - http://jawr.java.net/docs/plain_html.html).. Имейте в виду, что есть компромисс с использованием загрузчика скриптов (последний абзац вышеупомянутого).страница описывает это)

Относительно вашего вопроса 1) под тегами вы подразумеваете какие теги?JSP теги?

0 голосов
/ 04 июля 2011

Вы можете использовать отображение <init-param> для сервлета и привязать сервлет к этому URL.

Пример из документации сервлета Jawr :

    ...
    <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> 
...