Nginx部署vue项目并在局域网中开放访问(尝鲜)

目录

前言

1. 打包vue项目

2. 部署在Nginx中

3. 局域网开放访问

4. 局域网设备对项目访问

5. 给作者加加油吧


前言

本文章演示如何将一个vue项目打包并部署到Nginx服务器中,并在局域网中开放访问,实现局域网用ipad设备对vue项目的访问。本实验仅为简单试验,适用于入门的童鞋们参考。

实验环境:win10,vue3+vite,nginx-1.22.0。

实验前提:安装部署Nginx服务器

1. 打包vue项目

执行打包命令:

npm run build

打包之后的文件在哪?vite默认是在vue项目下的dist文件夹,如果自己修改了根据自己写的路径找就对了。 

2. 部署在Nginx中

(1)把打包好的文件复制到Nginx服务器中。

例如,本实验在服务器文件夹中新建了front-sys\vite-demo并把打包好的项目复制到这里。

(2)为项目配置服务端口。

如图进行配置,可以根据自己需求修改相应的属性。

(3)启动nginx服务器:start nginx。

通过本地浏览器打开:http://localhost:8080,就可以看到如下图说明部署成功了。

3. 局域网开放访问

有两种方式将服务开放给局域网访问,一种是直接关闭防火墙,还有一种是不关闭防火墙仅放开指定的端口。通过一下一种方式即可。

(1)关闭防火墙

不推荐这种方式,因为可能会将你的电脑所有端口对局域网内放开,有安全风险。打开控制面板,按照下图的路径找就对了,然后点击关闭防火墙。

(2)不关闭防火墙,仅开放指定端口(推荐)

通过控制面板进行以下步骤的操作:

 

4. 局域网设备对项目访问

局域网访问的话,最简单的就是,访问的设备和nginx服务器的设备连在同一个路由器下就可以了。

(1)看看部署项目的ip地址,在cmd中输入命令查看:ipconfig。

 (2)我这里通过ipad来访问vue项目。访问地址看看就明白了:http://192.168.1.106:8080

5. 给作者加加油吧

---------------------------------------------------------------------------------------------------------------------------------

                                          对你有帮助的话,一杯咖啡让作者更有动力~ (click)

---------------------------------------------------------------------------------------------------------------------------------

在使用 Nginx 部署 Vue 项目时,如果访问 `assets` 目录中的静态资源(如图片、字体文件等)出现 404 错误,通常是由于 Nginx 的路径配置不正确,导致无法正确匹配和响应静态资源请求。 ### 正确配置 Vue 项目的静态资源路径 在 Vue 项目中,静态资源通常存放在 `public` 或 `assets` 目录下。构建时,`assets` 中的文件会被 Webpack 处理输出到 `dist` 目录中的 `assets` 子目录。因此,Nginx 需要正确配置以识别这些资源的路径。 确保 Nginx 的 `location` 块中 `root` 指向 Vue 项目构建输出目录(通常是 `dist`),且使用 `try_files` 来处理 Vue Router 的历史模式路由问题,同时保留对真实静态资源的访问能力[^1]。 可以使用如下配置: ```nginx location / { root /usr/local/nginx/html/dist; index index.html; try_files $uri $uri/ /index.html; } ``` 上述配置中,`try_files $uri $uri/ /index.html;` 表示如果请求的文件或目录存在,则直接返回对应资源;否则重定向到 `index.html`,从而让 Vue Router 接管路由。这样可以确保对 `assets` 路径下的真实文件请求不会被重定向,而是直接由 Nginx 返回对应的静态资源。 ### 检查静态资源路径是否正确 除了 Nginx 配置外,还需要确保 Vue 项目在构建时输出的 `assets` 文件夹路径正确。如果在开发环境中使用 `public` 文件夹存放资源,构建时这些资源会直接复制到 `dist` 根目录,因此在访问时不需要添加 `assets` 前缀。如果是通过 `import` 引入的资源(如组件中使用 `require` 或 `import`),Webpack 会自动处理路径输出到 `dist/assets` 目录下。 若 Nginx 配置的 `root` 指向 `dist` 目录,则访问 `assets` 中的文件时路径应为 `/assets/xxx.png`,Nginx 会自动映射到 `dist/assets/xxx.png`。如果访问路径与实际构建输出路径不一致,也会导致 404 错误。 ### 使用 `alias` 代替 `root` 的注意事项 在某些情况下,可能希望将 `assets` 路径单独配置,以避免与 Vue 的路由规则冲突。可以使用 `location` 指定特定路径使用 `alias` 指向实际的资源目录,例如: ```nginx location /assets/ { alias /usr/local/nginx/html/dist/assets/; } ``` 使用 `alias` 时需要注意,它会将 `/assets/` 映射到指定的物理路径,因此访问 `/assets/xxx.png` 实际上会访问 `/usr/local/nginx/html/dist/assets/xxx.png`。这可以确保对静态资源的访问不会受到 `try_files` 的影响。 ### 验证重载 Nginx 配置 完成配置后,应执行以下命令验证重载 Nginx: ```bash sudo nginx -t sudo nginx -s reload ``` 通过以上方式,可以有效解决在 Nginx部署 Vue 项目访问 `assets` 目录中的资源返回 404 错误的问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值