I'm trying to dynamically concatenate a bunch of javascript files into a
single file using the INCLUDE filter. The include.shtml.js test script is

    <!--#include virtual="/static/script2.js" -->
    <!--#include virtual="/static/script1.js" -->

The virtual server config has both SSIETag and SSILastModified set to On
for that file

    <VirtualHost *:80>

        ServerName test.dkt
        ServerAlias test.com
        UseCanonicalName Off
        ErrorLog logs/test.dkt-error_log
        CustomLog logs/test.dkt-access_log combined
        LogLevel info
        FileEtag All
        AddType application/javascript .js

        DocumentRoot /var/www/html/test.com
        <Directory /var/www/html/test.com>
            Options -Indexes
            ExpiresActive Off
            ExpiresDefault "access plus 1 years"
            Header append Cache-Control "public"
            Order deny,allow
            Allow from all
        </Directory>

        <Directory /var/www/html/test.com/static>
            <FilesMatch "\.shtml\.js$">
                SSIETag On
                SSILastModified On
                Options +Includes
                SetOutputFilter INCLUDE
            </FilesMatch>
        </Directory>

    </VirtualHost>

It correctly serves the concatenated scripts but is always a full 200 OK in
instead of a 304 Not Modified. The Firebug log

    Response Headers
    HTTP/1.1 200 OK
    Date: Fri, 24 Jan 2014 16:57:12 GMT
    Server: Apache/2.2.15 (CentOS)
    Last-Modified: Fri, 24 Jan 2014 16:53:32 GMT
    Etag: "460bbc-5c-4f0ba32b7447d"
    Accept-Ranges: bytes
    Vary: Accept-Encoding
    Content-Encoding: gzip
    Cache-Control: public
    Content-Length: 40
    Connection: close
    Content-Type: application/javascript

    Request Headers
    GET /static/include.shtml.js HTTP/1.1
    Host: test.dkt
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101
Firefox/26.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language:
pt-br,en-us;q=0.9,es;q=0.7,en;q=0.6,zh-tw;q=0.4,ar-sa;q=0.3,ar;q=0.1
    Accept-Encoding: gzip, deflate
    DNT: 1
    Connection: keep-alive
    If-Modified-Since: Fri, 24 Jan 2014 16:53:32 GMT
    If-None-Match: "460bbc-5c-4f0ba32b7447d"
    Cache-Control: max-age=0

Is there a hard coded restriction on conditional requests for the INCLUDE
filter?

I'm aware that I should "touch" the including script whenever there is a
change in any of the included scripts. The Apache version is 2.2 running in
Centos 6

Reply via email to