Я использую Django 1.3.1 и Python 2.7 на WinVista. Я испытываю ту же проблему, будь то на локальном сервере разработчика или при развертывании на моем хосте.
На главной странице моего сайта статические медиа показывает:
http://www.drugpolicyreformmovement.com
На дополнительных страницах CSS, изображения и т. Д. Не отображаются:
http://www.drugpolicyreformmovement.com/newsarchive2003
http://www.drugpolicyreformmovement.com/newsarchive2010
или
http://www.drugpolicyreformmovement.com/newsarchive2009
Выходные данные 'manage runserver' показывают ошибку 404 для статического носителя на этих вторичных страницах 'newsarchive' Каким-то образом «document_root» отличается на вторичной странице в отличие от главной страницы, так что он смотрит в «/ newsclippings2003 / static» на этих вторичных страницах вместо того, чтобы просто искать в «/ static» все, как должно и как это делалось для первой страницы.
Я не знаю, какой из моих URLconf относится к вам, поэтому я включил весь файл сюда:
import os
from django.conf.urls.defaults import *
from django.views.generic import ListView, YearArchiveView
from newsclippings.models import Article
from drugpolicyreformmovement.views import ArticleYearArchiveView
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^$', ListView.as_view(
queryset = Article.objects.order_by("-date", "publication", "author", "headline"),
context_object_name='articles',
template_name='index.html')),
(r'^newsarchive(?P<year>\d+)/$', ArticleYearArchiveView.as_view()),
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root' : os.path.join( os.path.dirname(__file__), 'static') }),
# url(r'^drugpolicyreformmovement/', include('drugpolicyreformmovement.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
)
Опять же, я думаю, что это проблемная строка:
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root' : os.path.join( os.path.dirname(__file__), 'static') }),
Неважно, в каком порядке я размещаю записи URLconf. Эта линия была разработана таким образом, чтобы мне не пришлось вносить изменения при развертывании.