javascript - 无法访问 Django + Angular 项目中的服务器媒体文件

标签 javascript python angularjs django media

因为我想在 Angular 方面进行路由,所以我在 urls.py 中添加了这个 url:

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

在我的主页 View 中,我只指定了我的 base.html:

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

这样我就可以指定我的 <ng-view></ng-view>base.html

现在我发出在服务器端获取图片的请求,如 localhost:8000/media/uploaded_pic.png 将转到主页的定义 url。

我怎样才能克服这个问题?

谢谢。

最佳答案

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

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

您的应用模板的 catch all 路由需要始终放在最后,因此要在开发过程中进行这项工作,您需要确保在为模板提供服务的最终 catch all 之前插入您的媒体 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 来提供我的客户端应用程序。

关于javascript - 无法访问 Django + Angular 项目中的服务器媒体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47042423/

相关文章:

angularjs - 如果表单控件具有无效数据,$setPristine() 将无法正常工作

javascript - 尝试在 onclick 中定义一个函数

Python psycopg2 - 记录事件

python - 如何在 django 模型中执行此 sql?

javascript - 将输入值格式化为小时和分钟格式 (hh :mm)

jquery - 延迟 Angular 的状态?

javascript - html 中真的需要 name 属性吗?

javascript - 获取数字模数范围以使返回值位于最小范围值和最大范围值之间的正确方法是什么?

javascript - javascript 查找表是在初始化之前还是之后执行函数?

python - Python 中似乎有效的函数定义的语法错误