繁体   English   中英

开发服务器上的Django媒体文件

[英]Django Media Files on Development Server

我在开发服务器上设置了以下URL模式。 DEBUG = True。 我的媒体目录上的图像链接不起作用(即localhost / media / images / img1.jpg不加载图像)。 但是,如果我将媒体网址模式插入到评论MAIN URL PATTERNS的部分前面,它可以正常工作,这表明我的媒体链接设置正确。 这里发生了什么?

urlpatterns = patterns("",
   # works if I insert the media url pattern here
   # MAIN URL PATTERNS
   (r"^admin/"                            , include(admin.site.urls)),
   (r"^group/(?P<dpk>\d+)/(?P<show>\S+)/" , GroupView.as_view(), {}, "group"),
   (r"^group/(?P<dpk>\d+)/"               , GroupView.as_view(), {}, "group"),
   (r"^add-images/(?P<dpk>\d+)/"          , AddImages.as_view(), {}, "add_images"),
   (r"^slideshow/(?P<dpk>\d+)/"           , SlideshowView.as_view(), {}, "slideshow"),
   (r"^image/(?P<mfpk>\d+)/"              , ImageView.as_view(), {}, "image"),
   (r"^image/"                            , ImageView.as_view(), {}, "image"),
   (r""                                   , Main.as_view(), {}, "photo"),
   # END OF MAIN URL PATTERNS
) 

if settings.DEBUG:
    urlpatterns += patterns('', 
        (r'^media/(?P<path>.*)$','django.views.static.serve',{'document_root': settings.MEDIA_ROOT,}),
        )

这样做的正确方法是:

if settings.DEBUG:
    urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + urlpatterns

(这也删除了硬编码的MEDIA_URL)

您的photo视图捕获所有内容,因为您没有在模式上放置任何开始/结束修饰符。 最后两种模式应该是:

(r"^image/$", ...
(r"^$", ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM