前端同一URL根据设备加载不同页面的实现方案

 更新时间:2026年03月21日 11:06:47   作者:季礼祥  
在做前端网页的时候,会涉及到很多界面,有的时候,这些界面都会有重复的代码,这篇文章主要介绍了前端同一URL根据设备加载不同页面的实现方案,文中给出了详细的代码,需要的朋友可以参考下

前言

因为历史的原因,公司内部有一个系统针对手机端和电脑端分别做了一套前端的spa页面,但是业务方还是希望通过不同设备访问同一个地址的时候,手机端加载手机端的页面,电脑端就去加载电脑端的页面 该如何实现这该死的需求呢?

方案

问题拆解

问:定心想一下,要实现这个需求我们需要解决的最根本的问题是什么呢?
答:根本要解决的问题是区分不同的设备,对相同的URL地址,返回对应设备的入口html文件。
问:那该如何区分不同设备呢?
答:我们可以在nginx中,根据请求头中的ua区分是移动端设备还是电脑端设备。
问:那具体该怎么配置呢?

具体配置

server {
    listen 9999;

    root /www/data/source;

    # 默认入口是pc
    set $index_file /index-pc.html; 
    if ($http_user_agent ~* "(android|iphone|ipad|ipod|mobile)") {
         # 手机端入口
         set $index_file /index-mobile.html; 
    }

    if ($arg_isMobile != "") {
        # 特殊需要 如果路径上带isMobile也加载手机端入口页面
        set $index_file /index-mobile.html; 
    }


   location / {
       # 顺序匹配 默认匹配路径  否则返回pc或mobile入口html
       try_files $uri $index_file;
    }
}

效果

电脑端访问localhost:9999

手机端访问localhost:9999

电脑端访问localhost:9999?isMobile=1

解决

通过ua的判断,针对相同的请求URL加载对应设备的入口html文件。

注意点

这个解决方案有一个要求是两个端构建后的资源需要上传到同一个目录下面,并且要修改入口html名称区分不同端的入口。担心静态资源(js,css,img)混乱的话,可以在构建的时候,把静态资源也用目录区分开,比如电脑端静态资源构建到pc目录下,手机端的资源构建到mobile目录下。

结语

没有最好的方案,只有最适合业务需求的方案。

总结

到此这篇关于前端同一URL根据设备加载不同页面的文章就介绍到这了,更多相关前端同一URL加载不同页面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序合法域名配置方法

    微信小程序合法域名配置方法

    这篇文章主要介绍了微信小程序合法域名配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • jquery实现简单的遮罩层

    jquery实现简单的遮罩层

    这篇文章主要介绍了jquery实现简单的遮罩层相关代码,内容很丰富,教大家实现遮罩层效果,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 在Google 地图上实现做的标记相连接

    在Google 地图上实现做的标记相连接

    这篇文章主要介绍了在Google 地图上实现做的标记相连接,需要的朋友可以参考下
    2015-01-01
  • Echart Bar双柱状图样式最全详解

    Echart Bar双柱状图样式最全详解

    echarts柱状图是用柱状图的形式展示数据,这样看起来比较直观,下面这篇文章主要给大家介绍了关于Echart Bar双柱状图样式的相关资料,需要的朋友可以参考下
    2021-08-08
  • JavaScript中字符串的常用方法总结

    JavaScript中字符串的常用方法总结

    这篇文章主要为大家总结了一些JavaScript中字符串的常用方法,文中的示例代码讲解详细,对我们学习JavaScript有一定的帮助,需要的可以参考一下
    2022-12-12
  • JS同源策略和跨域问题深入分析和解决

    JS同源策略和跨域问题深入分析和解决

    这篇文章主要介绍了JS同源策略和跨域问题深入分析和解决,在Web开发中,跨域问题是一个常见且必须解决的难题,当浏览器出于安全考虑限制不同源之间的资源交互时,开发者需要掌握多种方案来绕过这些限制,需要的朋友可以参考下
    2025-02-02
  • JavaScript实现鼠标悬浮页面切换效果

    JavaScript实现鼠标悬浮页面切换效果

    这篇文章主要为大家详细介绍了JavaScript实现鼠标悬浮页面切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 深入理解javascript动态插入技术

    深入理解javascript动态插入技术

    这篇文章介绍了javascript动态插入技术,有需要的朋友可以参考一下
    2013-11-11
  • 关于js datetime的那点事

    关于js datetime的那点事

    关于js datetime的一些使用经验分享,想要了解datetime日期操作的朋友可以参考下。
    2011-11-11
  • javascript性能优化之DOM交互操作实例分析

    javascript性能优化之DOM交互操作实例分析

    这篇文章主要介绍了javascript性能优化之DOM交互操作技巧,结合实例形式总结分析了JavaScript针对DOM操作过程中的各种常见优化操作技巧,需要的朋友可以参考下
    2015-12-12

最新评论