Django 测试服务器给静态文件 404
Django test server gives 404 to static files
在生产环境中,我使用的是 NGINX 并为静态文件设置了一个别名,所以这没问题。
但是,在测试服务器模式下,我得到所有静态文件的 404。它们位于项目的底部,这是我的相关设置:
DEBUG = True
INSTALLED_APPS = (
...
'django.contrib.staticfiles',
...
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
这是我的 urls.py
from django.contrib import admin
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
urlpatterns = patterns(
'',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'home.views.home', name='home'),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
当运行测试服务器时,我尝试获取位于$BASE_DIR/static/home/img/logo.png
的http://127.0.0.1:8000/static/home/img/logo.png
,但获取404。
'home/img/logo.png' could not be found
并且在测试服务器日志中
[03/Feb/2015 17:49:08] "GET /static/home/img/logo.png HTTP/1.1" 404 1655
有什么想法吗?
STATIC_DIRS
应该是 STATICFILES_DIRS
在生产环境中,我使用的是 NGINX 并为静态文件设置了一个别名,所以这没问题。
但是,在测试服务器模式下,我得到所有静态文件的 404。它们位于项目的底部,这是我的相关设置:
DEBUG = True
INSTALLED_APPS = (
...
'django.contrib.staticfiles',
...
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
这是我的 urls.py
from django.contrib import admin
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
urlpatterns = patterns(
'',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'home.views.home', name='home'),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
当运行测试服务器时,我尝试获取位于$BASE_DIR/static/home/img/logo.png
的http://127.0.0.1:8000/static/home/img/logo.png
,但获取404。
'home/img/logo.png' could not be found
并且在测试服务器日志中
[03/Feb/2015 17:49:08] "GET /static/home/img/logo.png HTTP/1.1" 404 1655
有什么想法吗?
STATIC_DIRS
应该是 STATICFILES_DIRS