我使用Django作为后端,并且遇到了跨源问题,该问题已在设置中使用corsheaders
软件包解决。到目前为止,由于以下原因,我所有的GET端点都能正常工作:
CORS_ORIGIN_ALLOW_ALL = True
但是,我现在正在尝试访问Django后端上的静态文件,其位置如下:
http://localhost:8000/static/image.jpg
但是,浏览器客户端会像以前一样收到熟悉的错误:
Access to XMLHttpRequest at ... from origin ... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
有什么想法吗?谢谢
答案 0 :(得分:2)
我假设您正在使用内置的staticfiles
应用程序在开发中提供静态文件。与runserver
一起使用staticfiles
管理命令时,它使用WSGI处理程序来提供绕过中间件的静态文件。 (Django docs)
您可以通过运行python manage.py runserver --nostatic
来禁用它。当您使用--nostatic
时,它将通过Django urlconf处理与所有其他URL相同的静态URL,因此请不要忘记在根urlconf中包含静态文件URL,如下所示:(请参见Static file development view)
if settings.DEBUG:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()