Vue3项目打包发布nginx服务器(windows)

本文详细介绍了如何通过配置Nginx和Vite的base设置,实现在发布项目时仅需复制文件到指定目录,通过指定URL访问。重点讲解了vite.config.js的base配置和nginx的server配置,以及可能出现的问题解决方法。

实现只需要配置一次nginx,今后发布项目只需要把打包文件复制粘贴到指定目录即可,通过"http://域名:端口号/文件夹名 "即可访问到新发布项目

我这里直接跳过nginx安装教程了,只记录nginx怎么配置的和vite.config.js配置注意事项

打包

在vite.config.js文件里面加上base的配置项,路径一定要和放到服务器的文件夹名(即最后访问的路径)一致
不配置会导致页面发布到服务器后找不到静态文件而出现空白页

export default defineConfig({
  base:'/dist', //要和服务器上的文件夹名(访问路径)一致
})
nginx配置
  • 找到nginx配置文件,路径为 nginx安装目录/conf/nginx.conf
  • 修改配置,给配置文件添加一下配置
http {
  # ...其他配置...

  server {
    listen 8888;
    # 端口
    server_name localhost;

    root G:/it/nginx-1.24.0/nginx-1.24.0/app;
    # root值为你发布项目的目录
    location / {
      try_files $uri $uri/ /index.html;
      # try_files指令会依次尝试请求的文件路径,如果找不到对应的文件,则会重定向到index.html。这样,当访问任何路由时,Nginx会将请求转发到index.html,然后Vue Router会接管处理路由。
    }
  }
}
启动Nginx

在安装目录打开cmd,输入Nginx启动命令

start nginx
项目放到服务器
把打包好的dist文件放到发布项目的目录,我的是G:/it/nginx-1.24.0/nginx-1.24.0/app,根据你配置的值,配置哪个目录就放哪个目录

然后把dist文件名改为你最后想要访问的路径,我最后想通过“/dist”路径访问,所以我就不改了
image.png

验证

我配置的端口是8888,文件名为dist,所以可以通过http://localhost:8888/dist/访问到项目

总结

以后发布项目就不需要再改nginx配置文件了,只需要把打包后的文件放到服务器的指定目录,修改个名字就可以访问了。
注意点:

  1. 如果出现空白页但是网页title出来了,这是静态文件没有访问到。需要检查一下vite.config.js配置文件的base是不是和文件名一致
  2. 如果出现404,路径配置有问题,检查一下root
### Vue 3 项目打包并部署到 Nginx 服务器教程 #### 1. Vue 3 项目配置与打包Vue 3 项目中,可以通过修改 `vue.config.js` 文件来设置项目的构建参数。以下是一个典型的 `vue.config.js` 配置示例: ```javascript module.exports = { publicPath: "./", // 设置相对路径 outputDir: "dist", // 输出文件目录 devServer: { open: true, // 自动打开浏览器 }, }; ``` 在开发环境中,通常会使用代理来解决跨域问题。但在生产环境中,可以通过 Nginx 配置反向代理来替代开发环境中的代理配置[^1]。因此,可以注释掉 `devServer.proxy` 的相关配置。 接下来,在路由配置文件中,将 `mode` 设置为 `hash` 模式以避免在生产环境中出现 404 错误。如果需要使用 `history` 模式,则必须确保 Nginx 配置正确支持前端路由重定向。 ```javascript const router = new VueRouter({ mode: "hash", // 或者 mode: "history" routes, }); ``` 完成上述配置后,运行以下命令进行项目打包: ```bash npm run build ``` 打包完成后,会在项目根目录下的 `dist` 文件夹中生成静态资源文件[^1]。 --- #### 2. 下载并安装 Nginx 确保服务器上已安装 Nginx。如果没有安装,可以通过以下命令安装(以 Ubuntu 系统为例): ```bash sudo apt update sudo apt install nginx ``` 安装完成后,可以通过以下命令启动、停止或重启 Nginx: ```bash # 启动 Nginx sudo nginx # 查看 Nginx 占用端口 ps -ef | grep nginx # 停止 Nginx sudo nginx -s stop # 重载配置文件 sudo nginx -s reload ``` --- #### 3. 配置 Nginx 编辑 Nginx 配置文件,通常位于 `/etc/nginx/nginx.conf` 或 `/etc/nginx/sites-available/default`。以下是针对 Vue 3 项目的典型配置: ```nginx server { listen 80; server_name localhost; location / { root /path/to/your/dist; # 替换为你的 dist 文件夹路径 index index.html index.htm; try_files $uri /index.html; # 支持前端路由 } location /api { # 如果存在后端 API 跨域问题 proxy_pass http://backend_server_ip:port; # 替换为后端服务地址 add_header Access-Control-Allow-Origin *; # 允许跨域访问 } } ``` 保存配置文件后,通过以下命令验证配置是否正确并重新加载 Nginx: ```bash # 检查配置文件语法 sudo nginx -t # 重载配置文件 sudo nginx -s reload ``` --- #### 4. 浏览器访问 打开浏览器,输入 Nginx 的监听地址(如 `http://localhost:5177` 或 `http://your-server-ip`),即可访问部署的 Vue 3 应用程序[^3]。 --- ### 注意事项 - 如果使用 `history` 模式,请确保 Nginx 配置中包含 `try_files $uri /index.html`,否则可能会导致页面刷新时出现 404 错误。 - 如果项目中有跨域需求,需在 Nginx 配置中添加 `proxy_pass` 和 `add_header Access-Control-Allow-Origin` 来解决跨域问题[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值