【发布时间】:2019-03-04 18:47:28
【问题描述】:
我有一个使用 Django(仅 DRF API)和 Vue js 制作的项目。 我有这个项目结构:
root_directory/
├── project_name/
│ ├── settings.py
│ ├── ...
├── front_end/
│ ├── ... vue files generated with CLI 3 ...
└── api/
└── ... api app files ...
我想使用 heroku 部署这个项目,我最大的问题是:我不知道如何提供静态文件(vue 应用程序文件)。
在 heroku 文档中指定我应该使用 django staticfiles serving 和 whitenoise 包(除了在 S3 中托管它们)。
但是还有另一个问题:vue-cli 为我提供了一个index.html 文件,当我运行npm run build 时,所有东西都会被注入,所以我无法直接访问index.html 中的{% static 'example.js' %},因为它不是我应该使用的index.html,当然是dist/ 文件夹中的那个。但是那里的一切都被缩小了,太复杂了,我无法处理。我认为如果npm run build 在public/index.html 中看到类似{% %} 的内容,它会抛出错误。
我不知道如何使用 heroku 部署这个项目。 在这种情况下部署它的最佳做法是什么?
提前致谢。
【问题讨论】:
-
前后端完全分离不是很有意义吗?在一个应用程序中使用 Django 通过 REST API 提供数据(例如 JSON),并在另一个应用程序中使用 Vue 使用数据。
-
你的意思是我应该对静态文件(Vue 文件)使用 CDN 并为后端配置 CORS 就可以了吗?
-
有点,只是托管两个不同的应用程序。正如您提到的 Heroku:创建两个 Heroku 项目,一个用于 Django 应用程序,一个用于 Vue 应用程序。例如,必须通过
server.js文件配置 Vue。有很多关于如何“将 Django 应用部署到 Heroku”和“将 Vue 应用部署到 Heroku”的教程。 -
哦,这可能是一个可行的解决方案。我从未想过将 Vue 应用程序单独部署到不同的服务器中。您可以发布解决方案。谢谢
标签: django heroku vue.js vuejs2 web-deployment