​在Nginx中部署Vue项目并添加路径前缀
创始人
2025-07-12 17:40:18
0

随着前端技术的不断发展,Vue.js作为一种流行的JavaScript框架,被广泛应用于构建现代化的Web应用程序。而在生产环境中,我们通常需要借助Web服务器来部署和提供Vue应用的静态资源。Nginx作为一款高性能的HTTP和反向代理服务器,成为了许多开发者的首选。

一个案例:

一个客户提出希望在部署后的路径上添加一个项目前缀weijishu,原来访问地址是http://192.168.11.12:8888,现希望改成http://192.168.11.12:8888/weijishu才能正常访问,查阅诸多资料,从nginx部署多个前端项目中找到灵感。

server {
  listen       8081;
  server_name  localhost;
  location / { 
    #不修改此处,确保用户直接输入ip+端口无法访问到系统
    root   html;index  index.html index.htm;
  }
  location /weijishu {
    #添加前缀,但html中存放vue的目录名尽量也要改成相同名字
    alias  html/weijishu;
    index  index.html index.htm;
    try_files  $uri  $uri/   /index.html;
  }
}

改好配置后,发现页面一片空白,审查元素,发现资源文件都是404,如下图:

原因是vue打包后的资源文件默认是绝对路径,只有配置在根目录才有效。修改vue打包配置,找到vue.config.js,修改publicPath:'/'   为    ' ./  ' ,修改为相对路径

重新打包,重启nginx,启动成功。

下面详细介绍一下如何在Nginx中部署Vue项目,并为其添加路径前缀。

一、构建Vue项目

首先确保Vue项目已经构建完成。在项目的根目录下,运行以下命令来生成用于生产环境的静态文件:

npm run build

构建完成后,可以在项目的dist目录中看到生成的静态文件。

二、准备Nginx服务器

我们需要一个已经安装并配置好的Nginx服务器。如果你还没有安装Nginx,需要根据你所使用的操作系统进行安装。

三、部署Vue项目到Nginx

将Vue项目构建生成的静态文件复制到Nginx服务器的适当位置。

四、配置Nginx

打开Nginx的配置文件,一般位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/default。

在配置文件中找到server块,然后添加一个新的location块来指定Vue项目的访问路径。例如,如果你想将Vue项目部署在/my-vue-app/路径下,可以添加以下配置:

server {  
    # ... 其他配置 ...  
  
    location /my-vue-app/ {  
        root /path/to/your/vue/dist;  
        try_files $uri $uri/ /my-vue-app/index.html;  
    }  
  
    # ... 其他配置 ...  
}

在上述配置中,root指令指定了Vue项目的静态文件所在的目录,try_files指令告诉Nginx如何寻找和返回文件。当请求的路径不存在时,Nginx会默认返回/my-vue-app/index.html,这对于Vue的单页应用(SPA)是非常重要的,因为它允许Vue Router接管路由。

五、验证并重新加载Nginx

保存并关闭配置文件后,你需要验证Nginx配置的正确性,并重新加载配置以使更改生效。

验证配置:

nginx -t

如果配置验证通过,没有错误,那么重新加载Nginx:

sudo systemctl reload nginx

六、访问你的Vue应用

现在,你可以通过浏览器访问http://your-server-ip/my-vue-app/来查看你的Vue应用了。Nginx将正确地处理路径前缀,并将请求转发到Vue应用的静态资源。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...