我正在帮助某人启动并运行Django + Vue应用程序,我们遇到的一个问题是如何使Vue应用程序热重新加载,同时又能够与本地Django服务器交互。
在生产中,Django服务器将为Vue应用提供服务,npm run build
将Vue应用的资产放入Django项目的templates/
和static/
文件夹中。
当我们运行Django服务器(python manage.py runserver
)时,该服务器正在localhost:8000
上运行。当我们运行npm run serve
(以获取热重装的好处)时,将在localhost:8080
上提供Vue应用程序。如果我从Vue应用向/exampleEndpoint
发出GET请求,它将转到localhost:8080/exampleEndpoint
,因此不会访问Django服务器。
将Vue应用程序与Django应用程序配合使用的正确方法是什么?
答案 0 :(得分:1)
如果您正在使用axios,则可以执行以下操作:
axios.defaults.baseURL = '//localhost:8000/';
省略http / s并仅以双斜杠开头将使当前协议继承到url中。
只要您的所有请求URI都以一个斜杠开头,这将导致axios.post('/api/example')
请求http(s):// localhost:8000 / api / example。
编辑:您将需要允许CORS标头。为此,有一个软件包django-cors-headers
。它非常易于使用并且可以正常运行:https://github.com/ottoyiu/django-cors-headers/
答案 1 :(得分:0)