Django: serving static file on debug=false

django, django-1.4, django-staticfiles

Solution

as you can see in the warning box in the docs, in production (i.e. with `debug=False`) you should be using your web server to serve static files, not django. For that reason, `staticfiles` will refuse to serve your assets if `debug=False`.

Problem

I know this question was asked many times, but none of the answers i found and tried helped me. Those are my static files settings: ``` STATIC_ROOT = os.path.abspath(SETTINGS_PATH+'/staticfiles/') # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = '/staticfiles/' # Additional locations of static files STATICFILES_DIRS = ( # Put strings here, like "/home/html/static" or "C:/www/django/static". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. os.path.join(os.path.dirname(__file__), 'static'), ) # List of finder classes that know how to find static files in # various locations. STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # 'django.contrib.staticfiles.finders.DefaultStorageFinder', ) ``` And in myapp/urls.py: ``` from django.conf.urls import patterns, include, url from django.conf import settings from django.contrib import admin from django.contrib.staticfiles.urls import staticfiles_urlpatterns admin.autodiscover() urlpatterns = patterns('', # urls ) urlpatterns += staticfiles_urlpatterns() ``` Collectstatic copies all files to staticfiles/ as it should and i get 404 on all static files. I also tried this in urls.py: ``` if not settings.DEBUG: urlpatterns += patterns('', url(r'^staticfiles/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), ) ``` This gives me following kind of errors: ``` Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:8000/?next=/staticfiles/css/bootstrap.css". localhost:11 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:8000/?next=/staticfiles/css/style.css". localhost:12 Resource interpreted as Script but transferred with MIME type text/html: "http://localhost:8000/?next=/staticfiles/js/bootstrap.js". localhost:79 Resource interpreted as Script but transferred with MIME type text/html: "http://localhost:8000/?next=/staticfiles/js/login.js". ``` I can't see what's wrong with my settings. Any ideas are most welcome.

Original source

Related problems