Static content can be cached?


I’m testing with and some questions arise me about some issues about cache control mode on static assets

Leverage browser caching of static assets

FAILED – (No max-age or expires) – http://[domain].com/wisej.wx
FAILED – (No max-age or expires) – http://[domain].com/resource.wx/init?_sc=….
FAILED – (No max-age or expires) – http://[domain].com/resource.wx/wisej.min.css?v=
FAILED – (No max-age or expires) – http://[domain].com/resource.wx/Wisej.Web/qx.min.js?v=
FAILED – (No max-age or expires) – http://[domain].com/resource.wx/wisej.min.js?v=
FAILED – (No max-age or expires) – http://[domain].com/app.wx?_sc=
FAILED – (No max-age or expires) – http://[domain].com/resource.wx/Wisej.Ext.FontAwesome/sign-in.svg
FAILED – (No max-age or expires) – http://[domain].com/resource.wx/Wisej.Ext.FontAwesome/user.svg
FAILED – (No max-age or expires) – http://[domain].com/resource.wx/Wisej.Ext.FontAwesome/lock.svg

Thanks in advance!

  • You must to post comments

I didn’t realize the etag method falls back on the server. I added relevant file extensions to IIS Output caching, however, I can’t get the .qs.js or wisej.js file to cache on IIS, because the extension is followed by a version number (ie, qx.js?v=  )

The other file extensions with no ? after it work fine.

I tried the “Cache different versions of a file based on query string variables” and entered * as a wildcard, but it didn’t work.





  • You must to post comments

Wisej caches all static and also all dynamic content. We use Etag instead of max-age. The old way of caching using max-age forces a resource that has not changed to be reloaded after the max-age, or it serves stale content when a resource has changed before the max-age,  or it forces the site to use cache buster links that you have to manually change everytime or receive stale content. Browsers cache using the full URL as the key. When wisej.js or cool-image.png changes and the site uses max-age you have to manually delete the cache on the browser or you have to change the URL. The newer Etag mehod of caching allows the server to decide when a resource is stale and it guarantees that the served content is always up to date.

wisej.wx is a small bootstrapper that may  change. It’s cached until changed.

/init is a payload that may also change. Also cached until changed.

/app.wx is the ajax request URL which obviously cannot be cached.

/wisej.js or /wisej.min.js is a bundle that is dynamically created for each application on first use (and cached using Etag).

/qx.js or qx.min.js is the basic library which also may change. Cached as well using Etag.

The same goes for images in icon packs or served by the app. All cached.

Wisej also pre-compresses (gzip) the scripts and bundles so that the server doesn’t have to compress on every request. They are all cached in /temp.

Check using The Network tab with dev tools. You’ll see the Etag and the 304 response.


  • You must to post comments


I don’t quite understand the question. Can you elaborate on the issues you mention?

  • Andrew Niese
    I think he is wondering why WiseJ doesn’t cache these files in the browser, to improve performance. It’s similar to an issue I opened up with Luca, but I assumed it was solved in WJ-8811 in 1.4.80. I received similar warnings when running a diagnostic on a WiseJ site on
  • Andrew Niese
    It’s important to receive a good score from these sites to 1) ensure maximum performance and 2) receive a good rating for Google PageSpeed. That can directly affect rank in Google search results. ( Would be great to know that WiseJ is doing all that it can out-of-the-box for this.
  • edmond girardi
    I wouldn’t think that you would want create actual “marketing type” websites with WiseJ – but I suppose you could. Seems like overkill
  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.