Apache deflate игнорирует JavaScript - PullRequest
1 голос
/ 25 февраля 2012

Я установил deflate в моем htaccess.Все работает нормально, , за исключением , по какой-то причине файлы javascript игнорируются.Я перепробовал все возможные комбинации AddOutputFilterByType DEFLATE с несколькими типами пантомимы, но все безрезультатно.Это не проблема кеширования, это фактически позволило мне поверить, что это работало, пока я не вернулся домой с двойной проверкой.В настоящее время я использую этот инструмент , сайт здесь .Вы можете ясно видеть, что все сжато, кроме файлов js (отсутствует правильная кодировка содержимого в отличие от файлов js из файлов Google и CSS).

Вот мой текущий файл htaccess:

<FilesMatch "\.(tpl|ini|log)">
    Order deny,allow
    Deny from all
</FilesMatch>

<FilesMatch "\.(js|css)$">
    SetOutputFilter DEFLATE

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
</FilesMatch>

ExpiresActive On
ExpiresDefault A0

<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
    ExpiresDefault A3024000
    Header append Cache-Control "public"
</FilesMatch>

<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
    FileETag MTime Size
    ExpiresDefault A3024000
    Header append Cache-Control "public"
</FilesMatch>

<FilesMatch "\.(xml|txt|html|js|css)$">
    FileETag MTime Size
    ExpiresDefault A604800
    Header append Cache-Control "proxy-revalidate"
</FilesMatch>

Iтакже был фильтр DEFLATE вне совпадения файлов.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 25 февраля 2012

Привет, я использую это для моего сайта, я просто использую AddOutputFilterByType для определенных типов пантомимы. Это еще один подход, который я знаю, но, возможно, полезный.

я заметил, что на вашем сайте javascript mime-тип это application / x-javascript

<Location />
  <IfModule mod_deflate.c>

    # compress content with type html, text, xml, css and js
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
    AddOutputFilterByType DEFLATE application/javascript application/x-javascript

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
    # the above regex won't work. You can use the following
    # workaround to get the desired effect:
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

    # Don't compress images
    SetEnvIfNoCase Request_URI \
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    #para que mis archivos pdf no los comprima
    SetEnvIfNoCase Request_URI "^(.*)pdf(.*)\.php$" no-gzip dont-vary

    <IfModule mod_headers.c>
    # properly handle requests coming from behind proxies
    Header append Vary User-Agent env=!dont-vary
    #Header append Vary User-Agent
    </IfModule>
  </IfModule>
</Location>
...