无法访问django + angular项目中的服务器媒体文件

时间:2017-10-31 18:38:16

标签: javascript python angularjs django media

因为我想在有角度的方面做路由,所以我在urls.py中添加了这个网址:

url(r'^.*$', Home.as_view(), name='home'),

我的主视图中我只指定了我的base.html:

class Home(TemplateView):
    template_name = "base.html"

这样我就可以在<ng-view></ng-view>

中指定我的base.html

现在我发出了在服务器端获取图片的请求,例如localhost:8000/media/uploaded_pic.png 将转到Home的已定义网址。

我如何克服这个问题?

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要在设置文件中设置静态和媒体网址,以便服务器知道以不同方式处理它们:

STATIC_URL = '/static/'
MEDIA_URL = '/media/'

您的应用程序模板的所有路径需要始终排在最后,因此要在开发过程中使其工作,您需要确保在最终捕获所有为模板提供服务之前插入媒体URL模式。

urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [ url(r'^.*$', Home.as_view(), name='home'),]

更多:https://docs.djangoproject.com/en/1.11/howto/static-files/

我的个人观点:我认为我的API层和我的客户层始终是完全独立的实体。我的客户只是我的API的使用者,所以我将我的客户端应用程序与我的API完全分开。