Defect #24617
closedBrowser js/css cache remains after upgrade
Description
Browser js/css cache remains after Redmine application upgrade.
Asset path parameter like "?1481777729" is not added with Rails 4.2.
Adding asset id parameters like old Rails 3 would solve the issue.
<script src="/redmine/javascripts/application.js?1481777729"></script>
Attached patch is based on:
http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/rails_asset_id
Redmine version is 3.3.1.devel.
Files
Related issues
Updated by Toshi MARUYAMA almost 10 years ago
Good Job!!
Is it related that Redmine does not use asset pipeline?
Updated by Akipii Oga over 9 years ago
+1
When upgrading Redmine(2.x→3.x), the screen may collapse.
If you fix with this patch, I want you to merge quickly.
Updated by Toshi MARUYAMA over 9 years ago
Toshi MARUYAMA wrote:
Good Job!!
Is it related that Redmine does not use asset pipeline?
Ref: #13927#note-2
Updated by Pavel Rosický over 9 years ago
toshio harita - why is the asset pipeline disabled?
btw. suffixes like "filename ?1481777729 " are just ignored and still cached by some web-servers.
http://guides.rubyonrails.org/asset_pipeline.html - using a file digest is safer then using timestamps
ex. https://redmine.org/assets/myasset- 66ca44f5c66abebe01f39e780e5b89159a04e7019c4515792224dd4cae962bbc .js
Updated by Toshi MARUYAMA over 9 years ago
Pavel Rosický wrote:
toshio harita - why is the asset pipeline disabled?
As #13927#note-3, we don't know how to port asset in plugins.
Updated by Kohei Nakamura over 9 years ago
+1 Great Job!¶
I was also upgrading to Redmine 2.5.1 to 3.3.2, Redmine layout collapsed!
I did not understand the cause and attempted to cancel the version upgrade.
However, Go MAEDA taught me this patch,
Upgrade succeeded.
I would like to apply the patch so that nobody suffers from this problem.
In my case, I applied this patch by the following procedure.
(Redmine 3.3.2)
#cd redmine/config/initilizers #wget http://www.redmine.org/attachments/download/17275/0001-Adds-asset_id-parameters-to-assets.patch #patch -u < 0001-Adds-asset_id-parameters-to-assets. and input redmine/config/initializers/10-patches.rb #bundle exec rake tmp:cache:clear tmp:sessions:clear Apache restart(Redmine Restart).
View source in the browser and confirm that it has a parameter string. (ex. ***.js.?1486805824)
Updated by Marius BĂLTEANU over 9 years ago
I didn't test the patch, but the functionality is really needed. Currently, we use a workaround with a pagespeed module for nginx in order to purge the cache after a release with js/css changes.
Updated by Jean-Philippe Lang over 9 years ago
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed
Patch committed, thanks.
Updated by Go MAEDA over 9 years ago
- Category set to UI
Since the problem adversely affects web UI, I am setting category field to "UI".
Updated by Greg T over 9 years ago
This patch doesn't seem to effect @import url(../../../stylesheets/application.css); in themes, so I still have to add a Cache-Control header.
<IfModule mod_deflate.c>
# DeflateAlterETag NoChange
RequestHeader edit "If-None-Match" '^"((.*)-gzip)"$' '"$1", "$2"'
</IfModule>
<filesMatch "application\.css$">
<ifModule mod_headers.c>
Header set Cache-Control "max-age=60, must-revalidate"
</ifModule>
</filesMatch>
Updated by Go MAEDA about 8 years ago
- Related to Defect #29625: application.css imported by themes not covered by cache control versioning added