解决vue打包部署nginx非html根目录时,无法访问页面,无法加载静态资源,显示空白页

您所在的位置:网站首页 浏览器加载静态文件失败 解决vue打包部署nginx非html根目录时,无法访问页面,无法加载静态资源,显示空白页

解决vue打包部署nginx非html根目录时,无法访问页面,无法加载静态资源,显示空白页

#解决vue打包部署nginx非html根目录时,无法访问页面,无法加载静态资源,显示空白页| 来源: 网络整理| 查看: 265

项目部署到nginx的html子目录下,无法加载静态资源,一直显示空白页面

vue项目部署到nginx的html目录下子路径,在nginx配置好子路径后,使用子路径一直无法放到到静态资源,本文中nginx的配置都是在监听80端口下

#nginx配置监听80端口的部分配置 server { listen 80; server_name localhost; #charset koi8-r; client_max_body_size 1024M; charset utf-8; #access_log logs/host.access.log main; location /gz/ { root html; index index.html index.htm; } location /prod/ { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/; } }

使用ip地址加gz路径:http:127.0.0.1/gz,进入后一直打开的是空白页面,无法加载静态资源,打开F12发现无法访问是因为静态资源都在http://127.0.0.1/static下了,但是配置的项目路径是gz,导致很奇怪,无法自动加载在gz目录下。 在这里插入图片描述 别急!!!!再看看 打开vue的vue.config.js文件,发现打开时,有个加载静态资源路径是:

# 原先的版本 publicPath: process.env.NODE_ENV === "production" ? "/" : "/", 修改成:指定在加载静态资源的路径 publicPath: process.env.NODE_ENV === "production" ? "/gz/" : "/",

当然前端大佬可以配置成,自动根据nginx的配置加载到gz目录下,目前没研究出来,先写死吧 配置好,肯定得打包部署下测试环境,发现可以加载静态资源,但是由于未登录访问的路径,被重定向会到127.0.0.1/login页面了。因为之前在nginx的html目录下已经存放过项目,所以被自动重定向回到了html内的项目,这个项目不是部署到gz目录下,所以肯定还有那个地方需要修改。这里应该跟vue的路由有关。。对就是路由,需要vue访问的路径携带有#

vue项目访问携带有#

在路由router.js中将history给去掉,参考如下:其他项目可能有所不同

export default new Router({ //mode: 'history', // 去掉url中的 # scrollBehavior: () => ({ y: 0 }), routes: constantRoutes })

再来试试。。。。。。。。。。。 部署到gz目录下,部署完成,开始访问,结果发现登录成功,静态资源正确加载

http://120.0.0.1/gz/#/login

之后项目的访问都是在http://120.0.0.1/gz/#下进行访问,到目前为止vue项目部署到nginx的html目录下子路径,在nginx配置好子路径后,使用子路径一直无法放到到静态资源的问题已经搞定。

nginx跨域配置 # 跨域配置放到上面的监听80的server{}中 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { root html; expires 30d; } location ~ .*\.(js|css)?$ { root html; expires 12h; } 验证是否成功

在vue项目中页面写几个标识符号,然后登录页面进入对应页面是否存在标识符号,如果存在说明是成功。。。。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3