Defect #17770

Updated by Toshi MARUYAMA over 4 years ago

Redmine by default, does something bad: it uses (in certain places only) the .js file extension for files that contain user content. ie files that should not be cached.

A small change should be made, to stop using the .js extension in these specific places.

Because:
Many Redmine users, configure Apache/Nginx to cache-in-the-browser all static files, such as .css and .js.
And the obvious config: is to look for files name *.js or *.css.

But those users will experience problems, that they then post here about (see list at the end).
It is a hard thing to diagnose -because the connection between the apache.nginx change and these specific, local problems: is not obvious.

*It happens alot, so fixing this will save many people pain.*

When people add a Nginx or Apache config to cache all .js files - at first everything seems to work... but then a day or more later they will notice a problem: it will happen on one of a few specific places

*a) Click 'edit' on an existing journal in an issue*

(the js file created is eg 24174.js where 24174 is the journal number: the AJAX call is:

- GET https://redmine.xyz.com/journals/edit/24174.js

*b) Uploading a file to an Issue*

Having selected the file in the Browse button: this file is called, (which contains the image file being sent to the server)

- POST https://redmine.xyz.com/uploads.js?attachment_id=1&filename=my-file-to-upload.png

*List of Tickets on redmine.org that are definitely to this issue*

Can't upload image #13564
Nginx Configuration (with Phusion Passenger) to set Expiration Headers message#43872 http://www.redmine.org/boards/2/topics/9703?r=43872
Unable to edit issue journal messages in Redmine 2.3.1 #14150
Unable to edit notes/answers in issues message#35759 http://www.redmine.org/boards/2/topics/35751?r=35759

Back