vue-cli3项目打包后,在自己搭的服务器上访问打包好的页面空白,处理方法

我用vue开发的一个小项目,项目开发出雏形,想打包一下放测试,但是我想放测试前自己检查一下经过npm run build打包生成的项目,在本地服务器能不能正常跑,于是,经过网上大哥的帮忙,写了个简易的koa服务器,将打包好的dist文件,放到了服务器上。

说一下我的dist文件的结构,dist/index.html       dist/static      然后static目录下有打包好的js  css  img 文件,里面包含打包好的文件

再说一下koa服务器,服务器入口文app.js          监听的3000 端口,   用localhost:3000 就可以访问到

然后vue.config.js目前没有做任何配置   publicpath的默认值就为“/”

然后我再localhost:3000端口访问    结果页面白屏!!!   network里资源状态码都是200    控制台有报错   如下:

Uncaught SyntaxError: Unexpected token <

蒙圈了有没有!!!  这是什么错。。。  经过我在网上的查找,估计是引用静态资源路径问题(因为网上很多,说白屏是静态资源路径引起的,然后报的相同的错)

网上也说到过很多,部署时需要配置vue.config.js里面的baseurl的值,但是我用的vue3.70版本   目前最新。官方让舍弃baseurl的配置,用publicpath来代替,于是,我hack了很多中配置方法,都不行。必须的知道哪里路径错了才行,好,现在来看看,空白页network里静态资源的引用路径,如下:

http://localhost:3000/static/css/app.9977a20f.css

发现问题了谬????!!!!

http://localhost:3000是我服务器的根      是相对于koa里app.js的路径    而和app.js同级的是dist文件夹,这里存放着index.html  和statick文件夹   按正常逻辑,这个域要访问到html页面 有两种办法   一是将dist这一层去掉,用上述路径可以访问到index.html和statick文件   二是:
http://localhost:3000/dist/statick/css/app.css 才能正常访问到,于是,我先试了第一种,把dist里的文件都拿了出来,放在了与app.js同级的目录下,然后页面正常显示了。但是我觉的这不是最好的解决办法,我应该在vue中配置,将静态资源的访问路径前加上一个dist   也就是变成第二种访问路径,那么vue.config.js的publicpath该上场了配置如下:
//基本路径(相对于服务器根目录   静态资源的相对路径)
  publicPath: process.env.NODE_ENV === "production" ? "/haha/" : "/",

然后打包构建,放到服务器,好了,页面出来了!!!!明白了吗???

再来看看现在的引用app.css的路径

http://localhost:3000/haha/static2/css/app.9977a20f.css

这样就对了嘛。。

这也更好理解了publicpath的作用

另外想说一些不是太相关的知识(关于路径的)

.  :一个点  表示一个级别的目录   ./  表示当前目录下的目录    ../   表示上级目录  ../../  表示上级目录的上级目录  这对配置路径比较有帮助

另外  /   与  ./  的区别

/    :表示跟目录  是绝对路径

./   :是相对路径    是相对于index.html的路径

具体看下边

/   网站根路径 

./  当前路径

../ 上一级路径

../../  上两级路径

 

例如:本地静态网站 index页面地址  127.0.0.1/bootstrap_test/index.html在这里页面里面引入css和js路径应该怎么写呢?

1、

<link href="css/bootstrap.min.css" rel="stylesheet">  实际请求地址为:127.0.0.1/bootstrap_test/css/bootstrap.min.css 

找的是:和index.html  同级目录下的css文件里面的

 

2、

<link href="./css/bootstrap.min.css" rel="stylesheet">  实际请求地址为:127.0.0.1/bootstrap_test/css/bootstrap.min.css 

  找得是:和index.html  同级里面的css文件里面的

 

3、

 

<link href="/css/bootstrap.min.css" rel="stylesheet">  实际请求地址为:127.0.0.1/css/bootstrap.min.css 

      找的是根目录下面的css

4、

 

<link href="../bootstrap_test/css/bootstrap.min.css" rel="stylesheet">  实际请求地址为:127.0.0.1/bootstrap_test/css/bootstrap.min.css 

找得是:index.html上一级也就是和bootstrap_test处于同级里面的css文件里面的

原文地址:https://www.cnblogs.com/fqh123/p/10850311.html

时间: 2024-12-29 11:49:59

vue-cli3项目打包后,在自己搭的服务器上访问打包好的页面空白,处理方法的相关文章

telnet(ssh)等等 远程到linux(比如ubuntu)服务器,让后通过命令行在服务器上使用vpn

这篇文章的作用是:telnet(ssh)等等 远程到linux(比如ubuntu)服务器,让后通过命令行在服务器上使用vpn. 我在网上查了很多资料,但是按照上面的操作大都行不通,估计是linux的环境上存在差异. 下面的步骤是远程登录到(server)服务器,在服务器上使用vpn. 1.下载安装vpn相关的package [email protected]:~#sudo apt-get install pptpd network-manager-pptp network-manager-vpn

vue cli3 项目优化

vue-cli3 Prefetch (官网内容) <link rel="prefetch"> 是一种 resource hint,用来告诉浏览器在页面加载完成后,利用空闲时间提前获取用户未来可能会访问的内容. 默认情况下,一个 Vue CLI 应用会为所有作为 async chunk 生成的 JavaScript 文件 (通过动态 import()按需 code splitting 的产物) 自动生成 prefetch 提示. 这些提示会被 @vue/preload-web

发布网站后只能在服务器上访问 外网访问不了??

以前发布网站,只要在服务器上可以访问成功,在外网机器上是没有问题的. 但是今天发布了一个网站,服务器上访问ok,但是在外网上就访问不了, 最后百度查了,说是要在防火墙中设置运行的端口. 当当当~ 真的是这个问题. 如何设置呢? 首先打开“我的面板”,找到防火墙,点开防火墙,如下图 找到“高级设置”,点击进去, 如下图 找到“入站规则”,点击进去, 点击右侧的“新建规则”, 如下图: 选择“端口” 点击下一步: 输入你刚才发布网站时输入的端口号,点击下一步 后面的大家应该都会了 在最后一步中,输入

vue打包后index.html界面报错

vue项目完成后,打包放到服务器上,打开index.html页面时发现一片空白并且报错 很明显是js和css引用不到. 解决办法: 修改vue项目config文件夹下面的index.js,将assetsPublicPath:'/'改为assetsPublicPath:'./' 原文地址:https://www.cnblogs.com/luyuefeng/p/8350573.html

vue打包后显示空白正确处理方法

在项目中很多时候需要用到vue打包成html不需要放在服务器上就能浏览.根据官网打包出来的html直接打开是显示空白. 正确的方法步骤是 1.找到配置文件 修改 这样打包处理可以打开但是页面样式会找不到 2.修改 找到对应的位置加上publicPath: '../../' 然后就成功了! 转载:http://www.wei86.cn/article/1/cid/3.html

webpack4+(打包后的文件分析+HTML插件+样式处理)

(1)打包后的文件分析 首先将打包后的文件进行适当删减,Ctrl+Shift+L可以同时选中所有相同结构内容 结构如下 (function(modules){ ... })( { ... } ) 分析可知本质为匿名函数即IIFE函数,执行时会传入后面函数执行符里的对象,接下来分析下传入对象 key指的是当前模块路径 value (2)HTML插件 (3)样式处理 . 原文地址:https://www.cnblogs.com/jianxian/p/12416586.html

使用 maven:archetype 创建JSF2 + EJB3.1 + JPA2项目骨架并在JBoss WildFly 8.1上部署

执行以下命令创建项目骨架: mvn archetype:generate -DarchetypeGroupId=org.jboss.spec.archetypes -DarchetypeArtifactId=jboss-javaee6-webapp-ear-archetype -DarchetypeVersion=7.1.1.Final -DgroupId={你的groupId} -DartifactId={你的artifactId} -Dversion=1.0-SNAPSHOT 项目生成完毕后

记录下自己VUE项目用Hbuider打包后启动白屏问题

刚用VUE做项目,之前测试时vue创建的自身项目打包都是启动OK没问题.今天打包自己的时,启动一直白屏.折磨了好久,百度了一堆.终于找到了方法. 首先是在config/index.js里面 build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'), // Paths assetsRoot: path.resolve(__dirname, '../dist'), assetsSu

vue项目打包后css背景图路径不对的问题

问题描述: 自己在自学vue做项目的过程中,遇到一个有关背景图片路径的问题,就是css代码中背景图片是根据相对路径来写的,如下图: 当使用npm run dev命令本地访问的时候,背景图片是正常显示的,可使用npm run build命令打包后,访问dist目录下的项目,页面背景图路径就不对了,显示不出背景图.如下两张图对比 图一:使用npm run dev命令访问 图二:使用npm run build命令打包之后,访问dist目录下的文件,出现的问题,背景图片路径变成了http://127.0