[
https://issues.apache.org/jira/browse/AIRAVATA-3622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marcus Christie updated AIRAVATA-3622:
--------------------------------------
Description:
Most Airavata Django Portal CSS and JS resources that are bundled are written
to files that include a hash of the file's contents. For example, the
create-experiment entry point may be written to a file named
{{create-experiment.d239a691.js}}. This works well for busting browser caches
and ensuring that clients always get up to date static files.
However, some CSS and JS resources don't have a hash in their filename. By
default these are typically getting cached by browser using freshness
heuristics. But these files could be updated at any time. It would be better to
use the Cache-Control header for these resources to let browsers know that they
must revalidate these cached files with an ETag or Last-Modified timestamp.
For hashed static filenames, we can also instruct browsers to cache those files
"forever" since we are guaranteeing that an update to their contents will
result in a new filename/URL. That should provide a small performance
improvement by cutting down on unnecessary requests for immutable resources.
was:
Most Airavata Django Portal CSS and JS resources that are bundled are written
to files that include a hash of the file's contents. For example, the
create-experiment entry point may be written to a file named
`create-experiment.d239a691.js`. This works well for busting browser caches and
ensuring that clients always get up to date static files.
However, some CSS and JS resources don't have a hash in their filename. By
default these are typically getting cached by browser using freshness
heuristics. But these files could be updated at any time. It would be better to
use the Cache-Control header for these resources to let browsers know that they
must revalidate these cached files with an ETag or Last-Modified timestamp.
For hashed static filenames, we can also instruct browsers to cache those files
"forever" since we are guaranteeing that an update to their contents will
result in a new filename/URL. That should provide a small performance
improvement by cutting down on unnecessary requests for immutable resources.
> Configure browser to revalidate cached static files when they don't have
> hashes in filename
> -------------------------------------------------------------------------------------------
>
> Key: AIRAVATA-3622
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3622
> Project: Airavata
> Issue Type: Improvement
> Components: Django Portal
> Reporter: Marcus Christie
> Assignee: Marcus Christie
> Priority: Major
>
> Most Airavata Django Portal CSS and JS resources that are bundled are written
> to files that include a hash of the file's contents. For example, the
> create-experiment entry point may be written to a file named
> {{create-experiment.d239a691.js}}. This works well for busting browser caches
> and ensuring that clients always get up to date static files.
> However, some CSS and JS resources don't have a hash in their filename. By
> default these are typically getting cached by browser using freshness
> heuristics. But these files could be updated at any time. It would be better
> to use the Cache-Control header for these resources to let browsers know that
> they must revalidate these cached files with an ETag or Last-Modified
> timestamp.
> For hashed static filenames, we can also instruct browsers to cache those
> files "forever" since we are guaranteeing that an update to their contents
> will result in a new filename/URL. That should provide a small performance
> improvement by cutting down on unnecessary requests for immutable resources.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)