前端项目是怎么把网页后缀隐藏的

有没有专业的前端开发给我解个惑,你们是怎么把网页后缀名给隐藏的?如果写的是一体的项目,比如说jsp,那么可以再后端项目里配置视图解析器来完成浏览器正常访问的时候,看不到.jsp这个后缀名的效果。但现在都是前后端分离的项目,在前端项目里与后端交互数据通过API接口,但是在前端项目里面不同页面跳转的时候,比如说使用document或者是windows对象跳转,是怎么做到不展示.html、.vue、.php这种后缀的?

经过一段时间的研究发现,这个问题的发生场景分为两种。

第一种是前端开发使用的是成熟的框架,这个时候框架内部就已经提供了对应功能,能够完成隐藏真实网络路径的能力,比如Vue中提供了router对象。

第二种是前端对于框架的依赖比较弱,这种情况下可以通过第三方的手段来完成这项能力。常见的手段有两种,第一种是nginx提供了try_files指令,第二种是tomcat提供了自定义valve组件的能力,同时除了valve,tomcat还提供了另外一种叫rewrite规则的东西,但是对于本次问题主要是隐藏后缀名来说,推荐直接使用valve,因为rewrite规则配置起来不是很容易,虽然命令只有一条,但是里面需要注意很多通配符、指令等杂七杂八的东西,或许也只有专业干运维的才会注意这些,对于咱们这种本身靠写代码吃饭的程序员,还是用valve吧!

参考GPT和自己的思路:在前端项目中,隐藏网页后缀名的方法可以通过以下几种方式实现:

  1. 使用路由器:路由器是前端框架提供的一种机制,用于管理页面url。通过路由器机制,前端可以实现不同的页面跳转,同时也可以在把跳转的页面url中去掉文件后缀名。

  2. 使用服务器URL重写:服务器端URL重写是一种常用的隐藏网页后缀名的方法。后端服务器可以在响应浏览器请求时进行URL重写操作来实现,屏蔽掉URL中的后缀名,将不同的URL映射到对应的页面链接。

  3. 使用history API技术:采用HTML5标准中的history API技术,可以让前端开发人员通过修改浏览器历史记录的方式,从而实现隐藏网页后缀名的目的。

总之,隐藏网页后缀名的方法有很多种,不同的方法适用于不同的情况,可以根据项目的具体需求进行选择。