I have MyApp/static/MyApp directory
When I run ./manage.py collectstatic, I expect the MyApp directory be copied to STATIC_ROOT but it doesn't
I have DownloadedApp/static/DownloadedApp as well and its copied to STATIC_ROOT fine.
What am I missing?
This happened to me because while investigating a bug occurring on certain dates, changed my computer date and time.
Hence it disturbed things like collectstatic, and also my browser history.
Don't change your computer date and time.
What are the
STATIC_ROOT
,STATICFILES_FINDERS
, andSTATICFILES_DIRS
in yoursettings.py
?When
collectstatic
is run, the defaultSTATICFILES_FINDERS
valuedjango.contrib.staticfiles.finders.FileSystemFinder
will collect your static files from any paths that you have inSTATICFILES_DIRS
.The other default
STATICFILES_FINDERS
valuedjango.contrib.staticfiles.finders.AppDirectoriesFinder
will look in the/static/
folder of any apps in yourINSTALLED_APPS
.All of the static files that are found will be placed in the specified
STATIC_ROOT
directory.Check out this link to the collectstatic docs
And this link an explanation of the various static settings in settings.py
You can also use
python manage.py findstatic
to see which directoriescollectstatic
will look in.I was under the impression the comparison would be content based. It turned out to be date based. So, don't mess with your files after
collecstatic
.One Quick work-around, although this does not fix it or explain WHY it's happening, is to:
python manage.py collectstatic
it will see that nothing is in your static folder and will copy ALL static files over.That just happened to me and I accidentally put the app's static files directory in the .gitignore file. So on my local machine it got collected just fine, but in production the static files were actually missing (gitignored).