日常开发11 vue加载静态文件,页面刷新后报错Uncaught SyntaxError: Unexpected token ‘<‘ (at Encrypt.js:1:1)

问题描述:

vue项目开发中,加载静态文件,静态文件存放的地址是在static文件下,也就是说打包的时候是不会一起打包的。首次加载js文件时正常200返回,请求头中的Content-Type:application/javascript,
刷新页面再次加载改文件 304,Content-Type:text/html

基本原理

vue中 静态文件引用注意事项

1.assets文件夹与static文件夹的区别

区别一:assets文件是src下的,所以最后运行时需要进行打包,而static文件不需要打包就直接放在最终的文件中了
区别二:assets中的文件在vue中的template/style下用…/这种相对路径的形式进行引用,在script下必须用@import的方式引入,而static下的文件在.vue中的任何地方都只要使用…/这种相对路径的方式引入

2.vue如何引入其它静态文件

1.src目录下的资源只能import或require。
2.想静态引入的话,建立一个与src同级的目录例如static,然后把静态资源放入该文件夹下,引入路径如下:./static/…

304

HTTP状态码304是指请求资源未发生变化,在客户端缓存有效期内,服务器返回304响应码,让浏览器直接使用浏览器缓存中的数据。

问题成因

我的理解就是浏览器缓存,因为static文件不参与vue的打包,静态文件路径不会发生改变,导致浏览器发现短时间内请求了相同的静态文件,请求浏览器就直接给拒了,让用上次返回的数据

解决办法

  1. 告诉浏览器我没有缓存,我不用缓存,给我新的,设置请求头中的’Cache-Control’为’no-store’
  2. 设置不了请求头,那就修改每次请求路径,比如路径后加一个时间戳,跟打包过程中在文件名后又hash值一个道理
    我是在index.html中采取了
 document.write("<script type='text/javascript' src='./static/xxxx?t=" + Date.now() + "'><\/script>");

问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值