现在,使用下面的配置可以毫无问题地提供我的STATIC文件。
在我的settings.py中:
MEDIA_ROOT = '/home/chronic88/webapps/media_media/'
MEDIA_URL = '/media/'
STATIC_ROOT = '/home/chronic88/webapps/static_media/'
STATIC_URL = '/static/'
static_media
和media_media
都是由apache提供的应用程序。
我可以通过管理员上传文件,它们显示在文件夹media_media
内,但它们不会显示在他们的网页上。当我检查页面源中的文件路径时,它们看起来是正确的mydomain.com/media/image.png
,但它们根本不会显示。所以,似乎链接就在那里,但是在apache和django之间进行通信存在一些问题,我无法指责。
我的主要urls.py:
admin.autodiscover()
urlpatterns = patterns('',
url(r'^', include('polls.urls', namespace="polls")),
url(r'^admin/', include(admin.site.urls)),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是我在生产中使用的urls.py。我尝试了它没有生产中的最后一行,但它给出了相同的结果(文件上传但不可显示)。
我错过了什么?
答案 0 :(得分:1)
如果您将Apache配置为从相应的根文件夹提供静态文件,则还必须运行manage.py collectstatic
(请参阅docs)。
要测试静态和媒体文件,我通常在我的urls.py中使用它:
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
)