发布服务器
进入项目所在目录运行
1 | npm run build |
修改 build 生成的静态文件路径
进入~\config\index.js
在build
下的assetsPublicPath
默认情况下是'/'
,此时打包的 index.html 文件中的资源文件(js、css、img)默认情况都是以/
开头的绝对路径,指向 http 服务器的根路径
如果想修改为相对路径或服务器中静态资源路径有调整,则需要将
assetsPublicPath
的值修改为'./'
或其他服务器路径,这样就是指向 index.html 的相对路径了。CSS 中的径可以修改 build/utils.js 中的 publicPath:
1 | if (options.extract) { |
部署 SPA
将打包生成好的项目部署到服务器,但是访问 SPA 项目的前端路由会出现
404
,这是由于 HTTP 服务器默认情况下访问的是对应目录下的 index.html,此时需要对 HTTP 服务器做下路由映射,将前端路由地址映射到 index.html。
以下是 SPA 项目常用的几种部署方式:
例如前端路由地址:https://localhost/live/292/wonderful
Apache
如果只使用 Apache 做 HTTP 服务器,可以设置 Apache 的 url 重定向,将所有的请求路由到 index.html
- 打开
~\Apache\conf\httpd.conf
文件 - 去除 httpd.conf 文件中
LoadModule rewrite_module modules/mod_rewrite.so
前面的#
号 - 在 httpd.conf 文件中添加重定向规则
1 | RewriteEngine on |
nginx
使用 nginx 做反向代理服务器,配置文件参考:
1 | server { |
node.js
使用 node.js 做反向代理服务器,配置文件参考:
1 | var config = require("./webpack.config.js"); |
参考
- Vue-router 子页面刷新 404
- Apache Rewrite url 重定向功能的简单配置
- webpack 构建的项目的部署问题
- vue 实现 spa 实例讲解:前后分离