因为我想在 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/