vite+vue3打包后部署nginx Failed to load module script,空白页,404,反向代理等问题。

问题

        先说部署项目可能会遇到的全部问题

  • npm run build后打开是空白页
  • nginx 导航栏刷新404的问题
  • 反向代理配置问题
  • Failed to load module script问题

1、npm run build后打开是空白页

以下是解决方案,在vite.config.js中加上base:'/'或者base:'./',注意,一个带.,一个没带。好,重点来了,两者都可以解决部署到服务器上空白页的问题,那么,这两者有什么区别呢?可能会出现问题4的情景。因为我出现了,我使用的是'./'。

export default defineConfig({
  base: '/',
  ....
})

2、 nginx 导航栏刷新404的问题

        这个问题是这样的,如果我们通过页面内的点击跳转的时候,我们页面可以正常加载,但是如果我们直接在浏览器的url地址栏输入我们项目地址直接访问的时候,会出现这个问题

        那么我们怎么解决呢?我们需要在nginx配置文件中加上如下配置: 

#没加之前
server {
		listen 80;
		server_name  www.example.com;           #域名或者ip
        location / {
	        root   /www/project;                        #这里是项目地址
	        index  index.html index.htm;
        }
        ....
}
#加之后
server {
		listen 80;
		server_name  www.example.com;
        location / {
	        root   /www/project;
	        index  index.html index.htm;
	        try_files $uri $uri/ /index.html;
        }
        ....
}

3、反向代理配置问题

        推荐参考这篇文章:nginx反向代理后端接口-优快云博客,写的不错,解决了我配置的问题。

4、Failed to load module script问题

        在本地测试项目的时候正确加载没有问题,然而部署到nginx后,直接从地址栏输入就出现以下问题:Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.

        首先我以为是我本地自己引入的外部js问题,后来发现我把本地需要的js换成了cdn在线js,还是会出现这样的错误,所以排除了我本地js的问题。因为我本地是没有问题的,所以应该是nginx配置的问题了

        好,解决方案在于问题1配置的base需要和nginx配置的location路径相同,怎么解释呢,给看以下: location 后面的路径是 / ,所以我base配置的路径也应该是/,而不是./。

location / {
	root   /www/project;
	index  index.html index.htm;
	try_files $uri $uri/ /index.html;
}

 配置一致之后以上问题得到解决:也可参考以下博客Sticky Note | Vite项目打包部署Nginx的一些Issue - 掘金 (juejin.cn)

后续需要问题还会继续列出:遇到问题可进群交流:758301308,或者评论区留言!!!

Vue是一款流行的JavaScript框架,用于构建Web应用程序。为了使应用程序在生产环境中运行,需要对其进行打包,并将打包后的文件部署到Web服务器上。本文将介绍如何使用Nginx部署Vue应用程序。 首先,需要安装Nginx服务器。在Linux系统上,可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install nginx ``` 安装完成后,需要将Vue应用程序打包为静态文件,并将其放置在Nginx服务器的根目录下。可以使用以下命令进行打包: ``` npm run build ``` 这将在项目根目录下创建一个名为“dist”的文件夹,其中包含打包后的静态文件。将“dist”文件夹复制到Nginx服务器的默认根目录“/var/www/html”下。 接下来,需要编辑Nginx的配置文件以指向Vue应用程序的入口文件。默认情况下,Nginx的配置文件位于“/etc/nginx/nginx.conf”路径下。 打开配置文件并添加以下内容: ``` server { listen 80; server_name example.com; # 将example.com替换为你的域名 root /var/www/html/dist; # 将dist目录替换为你的Vue应用程序目录 index index.html; location / { try_files $uri $uri/ /index.html; } } ``` 该配置文件将Nginx服务器的根目录指向Vue应用程序的入口文件“index.html”。 保存并关闭配置文件后,需要重新启动Nginx服务器以使更改生效。可以使用以下命令重启Nginx: ``` sudo systemctl restart nginx ``` 完成以上步骤后,Vue应用程序已经可以在Nginx服务器上运行。现在可以使用浏览器访问Nginx服务器的IP地址或域名来查看Vue应用程序。 综上所述,使用Nginx部署Vue应用程序的过程大致分为三步:安装Nginx服务器、将Vue应用程序打包为静态文件并复制到Nginx服务器的根目录下、编辑Nginx的配置文件将其指向Vue应用程序的入口文件。完成以上步骤后,Vue应用程序将成功部署Nginx服务器上,用户可以通过浏览器访问该应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值