HTML5 History 模式

Apache + HTML5 History 模式 第1步,在原先已经搭建完成的Apache环境中,我直接在文档路径下,新建了.htacces文件(文档路径修改成自己的) 第2步,.htacces文件里面直接copy的官网例子https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%... 阅读详情

vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})

当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!

不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。

所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

后端配置例子

Apache

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

除了 mod_rewrite,你也可以使用 FallbackResource。

nginx

location / {
  try_files $uri $uri/ /index.html;
}

原生 Node.js

const http = require('http')
const fs = require('fs')
const httpPort = 80

http.createServer((req, res) => {
  fs.readFile('index.htm', 'utf-8', (err, content) => {
    if (err) {
      console.log('We cannot open "index.htm" file.')
    }

    res.writeHead(200, {
      'Content-Type': 'text/html; charset=utf-8'
    })

    res.end(content)
  })
}).listen(httpPort, () => {
  console.log('Server listening on: http://localhost:%s', httpPort)
})

基于 Node.js 的 Express

对于 Node.js/Express,请考虑使用 connect-history-api-fallback 中间件。

Internet Information Services (IIS)

安装 IIS UrlRewrite
在你的网站根目录中创建一个 web.config 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
{
  "hosting": {
    "public": "dist",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

警告

给个警告,因为这么做以后,你的服务器就不再返回 404 错误页面,因为对于所有路径都会返回 index.html 文件。为了避免这种情况,你应该在 Vue 应用里面覆盖所有的路由情况,然后在给出一个 404 页面。

const router = new VueRouter({
  mode: 'history',
  routes: [
    { path: '*', component: NotFoundComponent }
  ]
})

或者,如果你使用 Node.js 服务器,你可以用服务端路由匹配到来的 URL,并在没有匹配到路由的时候返回 404,以实现回退。更多详情请查阅 Vue 服务端渲染文档。

在IIS服务器上设置Vue Router中的HTML5 History模式 但是,Vue Router还提供了HTML5 History模式,它使用真实的URL路径来表示路由信息,看起来更加友好和美观。但是,Vue Router还提供了HTML5 History模式,它使用真实的URL路径来表示路由信息,看起来更加友好和美观。你可以使用相对路径或。下面将详细介绍如何进行设置。配置完成后,IIS服务器将会将所有请求发送到Vue应用程序的入口文件,并由Vue Router处理路由。配置完成后,IIS服务器将会将所有请求发送到Vue应用程序的入口文件,并由Vue Router处理路由。 阅读详情

相关推荐

Yolov5自学笔记之一--从入门到入狱,功能强大不要乱用(实现yolov5的基本功能使用流程及训练自己的数据集)

零基础自学yolov5,学会简单使用和训练自己的数据集,在自己工作中使用

qq_41597915的博客 1万+

前端路由的两种模式:hash模式和 history模式

为什么要使用路由 现在的网络应用程序越来越多的使用AJAX异步请求完成页面的无缝刷新,导致浏览器的URL不会发生任何变化而完成了请求,从而破换了用户浏览体验。同时本次浏览的页面内容在用户下次使用URL访问时将无法重新呈现,使用路由可以很好地解决这个问题。 单页面应用利用了JavaScript动态变换网页内容,避免了页面重载;路由则提供了浏览器地址变化,网页内容也跟随变化,两者结合起来则为我们提供了...

蒲公英芽的博客 2万+

Allegro规则管理器实战:5步搞定Xnet等长组设置(含Relative Propagation Delay配置)

本文详细介绍了在Cadence Allegro规则管理器中,通过5个实战步骤高效设置Xnet等长组的方法。核心内容包括创建Xnet属性、定义引脚对、建立匹配组,并重点讲解了Relative Propagation Delay规则的配置与应用,帮助PCB设计师确保高速信号时序对齐,提升系统稳定性与性能。

weixin_29193259的博客 518

前端路由hash模式以及history模式详解

在前后端分离的项目中,前端一般使用 SPA 单页面应用模式来开发项目。那么,什么是 SPA 呢?单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。单页面应用就是改变页面的url地址,不会向后台发送请求,而是通过前端路由,动态渲染页面组件,url地址的改变与后台无关。hash 模式history 模式对比hash 模式history 模式url 显示。

ThisEqualThis的博客 9700

IMU数据处理避坑指南:从理论到实践的加速度计重力消除方案

本文详细解析了IMU数据处理中的重力消除技术,从理论基础到实践应用,涵盖了加速度计和陀螺仪的核心问题。通过ROS2实战案例,介绍了静态标定与动态校准的技术对比,以及多传感器融合的进阶策略,帮助开发者避免常见陷阱,提升IMU数据处理的精度和效率。

purple的博客 741

1006. 换个格式输出整数 (15)-PAT乙级真题

1006. 换个格式输出整数 (15)让我们用字母B来表示“百”、字母S表示“十”,用“12…n”来表示个位数字n(&lt;10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。输入格式:每个测试输入包含1个测试用例,给出正整数n(&lt;1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出n。输入样例1...

柳婼 の blog 2243

介绍Vue router的history模式以及如何配置history模式

history模式使用浏览器的history API来管理路由状态,而不是依赖于URL中的哈希。在history模式下,URL看起来更加整洁,没有#符号。例如,history模式可以在不刷新整个页面的情况下,通过改变URL来切换页面,实现更加流畅的用户体验。

m0_62396648的博客 1万+

CCF CSP历年题解(python)

菜鸡一枚,没参加过算法竞赛,单纯为了抵研究生考试复试才刷题,通过写博客记录下来,希望能和大家互相交流,代码质量不高,大家见谅。 因为考研等原因,题目不定期更新… 第一题 201312-1出现最多次数的数 ...

weixin_44690402的博客 5005

history路由模式-熟悉两种路由模式

目标 了解两种单页应用的路由模式,清楚它们的区别 两种单页应用的路由模式 hash模式 hash模式 :使用 URL 的 hash 来模拟一个完整的 URL, 其显示的网络路径中会有 “#” 号 hash 虽然出现URL中,但不会被包含在HTTP请求中,对后端完全没有影响,因此改变hash后刷新, 也不会有问题 hash模式示例: http://localhost:8080/#/home http://localhost:8080/#/user 原理: hashChange history模

weixin_57334089的博客 5932

【ODX介绍】-5-用于Flash刷写的ODX-F文件概述

用于Flash刷写的ODX-F文件概述

「汽车电子助手」的博客 2531

第一百三十九回 介绍三个BLE包

本章回中主要介绍了Flutter中BLE的概念和操作方法,主要介绍了三个BLE包的功能和差异,以方便大家在BLE操作中选择不同的包。

talk_8的专栏 574

前端路由工作模式全解析:History 与 Hash 模式

在前端开发的世界里,路由是构建单页应用(SPA)的关键技术之一。它能够帮助我们在不重新加载整个页面的情况下,实现页面内容的切换,为用户带来流畅的交互体验。而路由的工作模式主要有两种:History 模式和 Hash 模式,今天我们就来深入探讨一下这两种模式的特点、用法以及如何在不同场景下选择它们。

m0_57836225的博客 2347

SAP FAGLFLEXT 是 SAP 新总账的核心余额表,存储多维度的汇总余额数据。核心结论:该表按 “科目 + 会计年度 + 期间 + 维度” 存储累计余额,字段可分为基础标识

FAGLFLEXT是SAP新总账的核心余额表,采用"科目+年度+期间+维度"结构存储多维汇总数据。其字段分为基础标识(科目、年度等)、维度细分(公司代码、利润中心等15个维度)、金额数值(本外币余额)、辅助控制(状态标识)四大类,支持新总账的灵活核算。该表通过凭证自动更新,与旧总账GLT0相比显著扩展了维度核算能力,各维度需在科目主数据或Ledger配置中启用才能使用。

金牌架构师 454

HTML5 History 模式 5分钟讲清楚

(相当于“修改当前URL”),不会新增记录。

jongden的专栏 1295

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

url的hash和HTML5的history模式

url的hash模式和HTML5的history模式,两者的含义和区别

webchang的博客 1559

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

history 改成 模式_HTML5 History 模式

vue-router默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。如果不想要很丑的 hash,我们可以用路由的history 模式,这种模式充分利用history.pushStateAPI 来完成 URL 跳转而无须重新加载页面。const router = new VueRouter({mode: 'histo...

weixin_28996083的博客 234

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Html5 history模式

HTML5的历史模式(HTML5 History API)是一种允许你在单页面应用(SPA,Single Page Application)中实现URL路由的技术。它使得可以在不重新加载页面的情况下改变浏览器的地址栏内容,这样用户可以看到不同的URL,并且可以在浏览器的历史记录中跳转。在传统的网页中,当你点击链接时,页面会重新加载。而在HTML5 History模式中,页面不会重新加载,但你仍然可以改变URL并更新浏览器的历史记录。这使得单页面应用的用户体验更像传统的多页面网站。

2301_80208990的博客 544

vue-router的HTML5 history模式

在创建路由实例的时候,通常会隐藏掉一个模式mode,默认为hash。也就是网页地址上会带一个#。 在#后面做路由的变化,页面是不会刷新的。 constrouter=newVueRouter({ //mode:'hash',//这是默认的,在创建路由实例时是没有的 routes }) 当我们将项目布到正式环境上时,会不希望在url中看到“#”,这时就...

reaaal的博客 304

【Vue Router】009-HTML5 History 模式

1.9 HTML5 History 模式 1.9.1 概述 vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。该模式是通过调用 createWebHashHistory() 函数创建的,这会在 URL 中使用 “#” 来标识要跳转目标的路径,如果你觉得这样很难看,可以使用 HTML5 History 模式。 HTML5 History 模式是通过调用 createWebHistory() 函数创建的 1.9.2

訾博(ZiBo)的博客 365

HTML5 history 模式

因为vue-router默认使用hash模式,这会在URL中使用"#“来标识要跳转的目标的路径,我们可以使用路由的history模式来使”#"消失,这种模式利用history.pushStateAPI来完成URL的跳转而无须重新加载页面。 修改router目录下index.js文件,将路由改为history模式。代码如下所示: ... export default new VueRouter({ mode: 'history', ... }) 再次运行项目,你就会发现项目中所有的URL中的’"#"都

qq_42024058的博客 1979

vue的HTML5 History 模式

vue的HTML5 History 模式配置,vue的HTML5 History 模式不是根目录下的配置

路在脚下,幸福在手中,莫贪!!!!! 2392

7-HTML5 History 模式

HTML5 History 模式 history 模式: 利用 history.pushState API 来完成 URL 跳转而无须重新加载页面( 去除 # ) const router = new VueRouter({ mode: 'history', routes: [...] }) mode type: string ( 默认: "hash" (浏览器环境)...

weixin_41802265的博客 244

Vue Router 的 HTML5 History 模式详解

Vue Router 默认使用 hash 模式,这种模式通过 URL 的 hash 部分(# 后面的内容)来模拟完整 URL,不会触发页面刷新。虽然简单易用,但 hash 模式会让 URL 看起来不够优雅,比如 `http://example.com/#/user/1`。 HTML5 History 模式则利用了现代浏览器提供的 `history.pushState` API,允许我们使用更自然...

gitblog_00592的博客 551

vue-router的HTML5 History 模式设置

VUE是当下最火爆的前端框架之一,vue-router是vue项目中几乎都会用到的组件,然而体验一时爽,其实坑不少。本篇经验将详细介绍vue-router的两种mode效果和开发测试环境下的问题,并给出解决方案。 vue-router的HTML5 History 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。 const router ...

明月如霜丶 1992

vue router 原生html,vue-router的HTML5 History 模式设置

VUE是当下最火爆的前端框架之一,vue-router是vue项目中几乎都会用到的组件,然而体验一时爽,其实坑不少。本篇经验将详细介绍vue-router的两种mode效果和开发测试环境下的问题,并给出解决方案。vue-router的HTML5 History 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。const router = ...

weixin_33554514的博客 505
上一篇: 微信小程序搜索功能(附:小程序前端+PHP后端)
下一篇: 阿里开发案例:Spring Could——nacos服务注册与发现整合feign
???? ??? Frank
博客等级 码龄7年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值