[英]Django - Serving Media/Admin files in production with Apache/Webfaction
就目前而言,使用以下配置可以毫无问题地提供我的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。 我在生产中没有最后一行的情况下尝试了它,但结果却相同(文件已上传但无法显示)。
我想念什么?
如果您将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}),
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.