[英]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.