I've a django website set up using django-compressor + memcached.
Not sure when it started, but I'm finding new css and js files in .../collect_static/CACHE/css and .../collect_static/CACHE/js every minute, like output.2fde5b60eff0.css.
I use django.contrib.staticfiles.storage.ManifestStaticFilesStorage.
I have no clue if this is normal, or happening because of some misconfiguration. But in every few days, I need to clean the server because of this.
Any suggestions what is going on here?
Update: It seems to be happening because of template variables inside css and js code, as per this answer, but as I've a lot of such variables, I still don't know how to fix this.
Ok, so I found the underlying reason. It is not actually the presence of template variables like
{{context_data_var}}within compressed code.It is the presence of any such variables the values of which change on each request. I had two such instances:
For 1. above, I simply moved such code outside compress.
For 2., the solution is slightly involved. I had to move away from using
{{csrf_token}}. Django explains it in detail here. We need to use thecsrftokencookie instead of the variable{{csrf_token}}, and django sets this cookie if there is at least one{% csrf_token %}in the template. I had one luckily in my base template, so the cookie was already getting set for me. I also had thegetCookie()function defined for all pages.Thus, I was able to get rid of the issue explained in my question.