最后更新:2022-01-13 08:26:15 手机定位技术交流文章
在我们学习Vue的路由时,总出现/#/官方一点的称呼这叫hash
路劲里面从#开始一直到#后面的所有的东西,都算作里面的hash值
他不会随着http请求发给服务器
作用:如果没有hash值的存在就算是一个,也会当作是路径的一部分传给服务器。
有了hash值的存在,我写了一个路径,但是有一部分我不想给服务器就作为hash值存在
hash的特点:不会作为路径的一部分发给服务器
特点就是有一个#
在我的router > index.js中有一个属性可以告诉路由器更改工作模式:
新开一个页签,输入localhost:8080
特点出来了:没有#
那么
#虽然丑但是它的兼容性好/虽然好看,但是兼容性比hash的#略差这还关系到项目上线问题
浏览器是不认识.vue的文件的,所以你得把public、src、App.vue、main.js...这一类的给打包(就是生成最纯粹的.html,.css,.js)
那怎么把.vue怎么打包?
打开
package.json
之前一直npm run serve是为了开启8080这台内置的小服务器,用于支撑你的项目运行。
项目写完了,你要用的就是"build": "vue-cli-service build",(就是所谓的npm run build)build最大的特点就是可以生成最纯粹的html、css、js
这个生成的速度取决于你项目的大小也取决于你电脑硬盘读写的速度
然后结束后,你会发现出现了一个dist(本身就有打包的意思)的文件夹
js里的有js文件和map文件(
webpack中提到的映射文件)
点击index.html文件,发现文件都没有了,是因为:
打包出来的文件必须放在服务器上进行一个
部署动作
demo文件夹想用
express,第一步得安装和变成一个合法的包
package name不能大写命名
新建一个服务器主文件server.js
1.引入express
2.创建一个app服务实例对象,express直接调用
3.启端口监听,app.listen(端口号,回调函数(回调会收到一个错误判断))
4.随便给它配置一个后端的路由
5.启动服务器,控制台输入
访问5005端口能不能访问人的信息
想要美化页面,可以下载插件FeHelper
如果一个东西真的上线了,我得把我前端的哪些静态资源(静态资源就是html、css、js)放在里面任意的文件夹(但标准起还是static有的时候叫public)
新建一个
static文件夹
可以随便写一个
demo.html
html文件用到一个中间键app.use(express.static)
需要我们传入一个路径:
写的更省心一点
demo.html改成index.html
这样就直接写localhost:5005就可以了,默认去找index.html,你也可以这样写
把脚手架生成的dist文件夹里的文件直接放入/static就可以了,
先删除之前的.html文件
一点一点点击它好使(整个过程它是不走网络请求的),一刷新就废了
因为服务器下只有一个/person
所以history是有这个问题的
hash模式就没这问题
验证:
找到router > index.js
重新打包
重新放入微型服务器上
重启服务器
执行上面的步骤就可以了,因为#后面(连同#)的路径是不会带给服务器的
这不管我们怎么写了,得是后端人员努力的配合你才行
哪些决定前端路由的,哪些是后端路由的
有很多种写法
这里给大家推荐一个node.js中的一个中间键是专门解决这个问题的
npmjs
这个中间键叫做connect-history-api-fallback
如果你不用这个东西你要自己一点一点写
正则匹配
微服务器vscode控制台 安装
引入
应用中间键,注意顺序,必须在这个静态资源(
app.use(express.static(__dirname+'/static')))之前去使用
这时你就神奇般的发现刷新没问题
nginx解决它可以帮你解决这个是后端路由还是前端路由
路由器的俩种工作模式
1.对于一个url来说,什么是hash值? -----#以及后面的内容就是hash值
2.hash值不会包含在HTTP请求中,即hash值不会带个服务器
3.hash模式:
(1).地址中永远带着#号,不美观
(2).若以后将地址通过第三方手机app分享,若app校验严格,则地址会标记为不合法
(3).兼容性较好
4.history模式:
(1).地址干净,美观
(2).兼容性和hash模式相比略差
(3).应用部署上线时需要后端人员支持,解决刷新页面服务器404的问题
本文由 在线网速测试 整理编辑,转载请注明出处。