Hi Andrzej, If I understand correctly you can't run `collectstatic` with `DEBUG = False` if you didn't run it with `DEBUG = True` beforehand.
I can't be sure without the full traceback but I suspect one of your applications calls `django.contrib.staticfiles.storage.staticfiles_storage.url` at module level triggering the `ValueError` since the hashed path to the specified asset has not been computed and cached yet. If you want to use `CachedStaticFilesStorage` you'll have to make sure not to issue such calls in modules loaded when `collectstatic` runs. Could you possible share the full traceback of the error raised when `collectstatic --traceback` is run. Simon Le vendredi 8 janvier 2016 15:36:54 UTC-5, Andrzej Mateja a écrit : > > Thank you Simon for sharing your remarks although it is not the case what > you described. I'm talking about deploying brand new project which is > depending on external application with its own static files. Project should > have also no static files collected yet, static files cashing enabled > (using CachedStaticFilesStorage) and empty cache. In such scenario I always > get ValueError exception in hashed_name method from HashedFilesMixin > class. I'm never able to complete collectstatic with DEBUG = False. My > workaround is: > 1. set DEBUG = True > 2. run python manage.py collectstatic > 3. set DEBUG = False > 4. run python manage.py collectstatic again > > In step 2. all static files from external application are copied to > STATIC_ROOT which enables me to proceed. This workaround is not very > beautiful nor django-like. Why? Because there is no such behaviour when I > fell back to default StaticFilesStorage. > > Andrzej > > W dniu piątek, 8 stycznia 2016 19:31:17 UTC+1 użytkownik Simon Charette > napisał: >> >> Hi Andrzej, >> >> CachedStaticFilesStorage requires you run `collectstatic` before deploying >> your application in production (non-DEBUG) mode. >> >> The deployment should look like that: >> >> 1) Update your code to the latest version. >> 2) Run `collectstatic` to cache paths to hashed versions of your assets. >> 3) Restart your server. >> >> Simon >> >> Le vendredi 8 janvier 2016 09:19:30 UTC-5, Andrzej Mateja a écrit : >>> >>> Hi, >>> >>> I have a problem with using CachedStaticFilesStorage as a >>> STATICFILES_STORAGE and with external package containing its own static >>> files (easy_select2 to be specific). If I deploy my project for the very >>> first time with DEBUG = False, empty cache and no external package static >>> files copied to STATIC_ROOT I got an exception: *ValueError: The file >>> 'easy_select2/js/init.js' could not be found with >>> <django.contrib.staticfiles.storage.CachedStaticFilesStorage object at >>> 0xffffffffffff>*. with every manage.py command, especially >>> collectstatic. I understand that behaviour of HashedFilesMixin is legit but >>> I'm not so sure if it should be like that when I want to collect my static >>> files. >>> >>> As a workaround I set temporally DEBUG = True, run manage.py >>> collectstatic, set DEBUG back to False and do the rest. But I have a >>> feeling that it is not the right way to do it especially because there is >>> no problem when StaticFilesStorage is used - no need to do such tricks. >>> >>> Best regards >>> Andrzej >>> >> -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/f2d75405-566f-48d1-b67a-3c8467b39ff5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

