无法访问 django + angular 项目中的服务器媒体文件
Cant access server media files in django + angular project
因为我想在 angular 端进行路由,所以我在 urls.py 中添加了这个 url:
url(r'^.*$', Home.as_view(), name='home'),
在我的主页视图中我只是指定了我的 base.html:
class Home(TemplateView):
template_name = "base.html"
这样我就可以在 base.html
中指定我的 <ng-view></ng-view>
现在我发出在服务器端获取图片的请求 localhost:8000/media/uploaded_pic.png
将前往定义的 url 主页。
我该如何解决这个问题?
谢谢。
您需要在设置文件中设置静态和媒体 urls,以便您的服务器知道以不同方式处理它们:
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.
服务我的客户端应用程序
因为我想在 angular 端进行路由,所以我在 urls.py 中添加了这个 url:
url(r'^.*$', Home.as_view(), name='home'),
在我的主页视图中我只是指定了我的 base.html:
class Home(TemplateView):
template_name = "base.html"
这样我就可以在 base.html
<ng-view></ng-view>
现在我发出在服务器端获取图片的请求 localhost:8000/media/uploaded_pic.png
将前往定义的 url 主页。
我该如何解决这个问题?
谢谢。
您需要在设置文件中设置静态和媒体 urls,以便您的服务器知道以不同方式处理它们:
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.
服务我的客户端应用程序