移动pc一套代码_【腾讯】如何避免 CDN 为 PC 端缓存移动端页面
❝
本题摘自于我 github 上的面试每日一题:https://github.com/shfshanyue/Daily-Question,并有大厂面经及内推信息,可「在左下角打开本题原文链接」
❞
如果 PC 端和移动端是一套代码则不会出现这个问题。「这个问题出现在 PC 端和移动端是两套代码,却共用一个域名。」
使用 nginx
配置如下,根据 UA 判断是否移动端,而走不同的逻辑 (判断UA是否移动端容易出问题)
location / { // 默认 PC 端 root /usr/local/website/web;
# 判断 UA,访问移动端 if ( $http_user_agent ~* "(Android|webOS|iPhone|iPad|BlackBerry)" ){ root /usr/local/website/mobile; }
index index.html index.htm;}
解决方案通常使用 Vary
响应头,来控制 CDN 对不同请求头的缓存。
「此处可以使用 Vary: User-Agent
,代表如果 User-Agent 不一样,则重新发起请求,而非从缓存中读取页面」
Vary: User-Agent
当然,User-Agent
实在过多,此时缓存失效就会过多。
简答
使用 Vary: User-Agent
,根据 UA 进行缓存。
Vary: User-Agent
但最好不要出现这种情况,PC 端和移动端如果是两套代码,建议用两个域名,理由如下
nginx
判断是否移动端容易出错- 对缓存不友好
更多面试
关注我
我是山月,正致力于「每天用五分钟能够看完的简短答案回答一个大厂高频面试题」。扫码添加我的微信,备注进群,加入高级前端进阶群.
欢迎关注公众号【互联网大厂招聘】,定时推送大厂内推信息及面试题简答,每天学习五分钟,半年进入大厂中
移动pc一套代码_【腾讯】如何避免 CDN 为 PC 端缓存移动端页面相关推荐
- bat比较有意思的代码_腾讯开源的 Unity全系列 代码逻辑热修复方案--InjectFix
InjectFix 腾讯开源的 Unity 代码逻辑热修复方案 Unity代码逻辑热修复 可用于Unity业务的bug修复,支持Unity全系列,全平台. 几个亮点 直接在Unity工程上修改C#即可 ...
- f1 score 代码_腾讯广告算法大赛冠军代码解读:稠密特征工程
什么是稠密特征? 本赛题中利用 word2vec 变换得到的特征维度设定为 n*64,因此得到的稠密特征也是一个 n*64 的矩阵.稠密的特性体现在,64 个维度上每一个维度都存在有意义的值,需要进行 ...
- 二叉树的建立与遍历完整代码_腾讯面试官这样问我二叉树,我刚好都会
前记 上周我投递出了简历,岗位是后端开发工程师.这周腾讯面试官给我进行了视频面试.面试过程中他问了二叉树的问题. 二叉树相关算法题,在面试中出现的次数非常非常多,所以我面试之前也有所准备.今天结合面试 ...
- vue项目区分打开的是pc端还是移动端
我是一个vue 项目 pc一套代码 移动端一套代码 1.建立两个文件夹 一个mobile 一个pc,在router里配置项目路径 2.新建一个js文件夹 下列代码放入 假设名字叫util export ...
- vue 项目适配PC和移动端配置 (两套代码)
vue 项目适配PC和移动端配置 (两套代码) 1.首页的配置: 首页用重定向的方式来进行适配的方案:` const redirectPath = /Android |webos | iphone i ...
- uni app 调用网络打印机_一套代码,七端运行-uni-app
为什么要使用uni-app uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS.Android.H5.小程序等多个平台. 同时在别的方面它也有很大优 ...
- TinkPHP内核仿每推推51领啦试客源码_PC源码+WAP端+APP原生代码_自带5套精美模板
TinkPHP内核仿每推推51领啦试客源码_PC源码+WAP端+APP原生代码_自带5套精美模板 源码说明:TinkPHP内核上制作而成,是全国领先的免费试用网站!程序全开源无加密!带有wap手机端, ...
- vuecli3 实现 移动端和pc端 界面切换(两套代码)
适合场景 多页面多系统应用 所有系统都在同一目录下.配置多入口多出口.每个系统之间可以链接.每个系统内依然采用Vue单页应用开发. 产品需求:一套代码 兼容pc端和移动端 , 移动端和pc端的样式布局 ...
- rem结合媒体查询适配的vue项目(PC端和移动端共用一套代码)
一.前言 上周四接到了一个简单的纯前端网页的项目,我用了三天时间已经开发并且部署完毕(为了实现快速简易部署,使用了gitee pages进行部署,这篇文章记录我使用gitee pages部署的详细过程 ...
- mxm智能教育机器人无法智能对话_零代码使用腾讯TBP打造智能对话机器人
点击观看大咖分享 心疼你独自一人承担生活的苦难,寂寞夜里陪伴你的只剩无人倾诉的压抑和无处安放的焦虑.养个宠物,它却不能get到你的"宠言宠语".找个伴侣,还要浪费吵架的时间和精力. ...
最新文章
- 2022-2028年中国马铃薯市场研究及前瞻分析报告
- MySQL笔记-binlog理论及binlog回滚恢复数据
- 移动端取消iphone ipad默认按钮
- 如何配置Ubuntu17的软件库(sortware update)
- ESXI上的新建虚机绑定已使用过的静态ip无法ping通网关的奇怪现象
- java dwg转pdf_CAD处理控件Aspose.CAD转换功能演示:使用Java将DWG和DXF文件转换为PDF...
- junit5 入门系列教程-05-junit5 断言(assert)
- weblogic jdk版本升级
- Android跑马灯进度条,跑马灯进度条在Powershell中冻结
- pysaprk数据倾斜怎么解决?
- python做题记录之正方形拼接
- python的MYSQLdb
- 数据导入(excel读取,存储进数据库【多表】)
- CAD图纸转换成高质量的PDF文件,两种方法一步搞定哦
- 会变色的背景透明NSButton
- SQL存储过程根据,循环取出数据
- Multisim高频电子线路2.7章LC谐振电路的仿真
- 联通物联卡为什么没有网络_联通物联卡突然没有信号,试着用这几方法!
- [C++] 销毁单向循环链表
- python分发扑克牌_python实现扑克牌交互式界面发牌程序
热门文章
- 用户自定义变量、系统变量、环境变量
- CentOS 8 基础命令
- hashmap containsvalue时间复杂度_恕我直言,你真的了解HashMap吗?
- lzw编码 matlab,LZW编码算法matlab实现.docx
- java 文件夹不存在则创建_java判断文件不存在就创建的方法
- Git(1):一个能够快速下载Git.exe的方法
- (14)Spring框架----Spring 注解机制和XML配置机制之间的比较
- (7)Redis-Cluster集群理论及实践【上】
- IDEA中 GIT与SVN版本控制插件的切换
- 实验一:JDK下载与安装、 Eclipse下载与使用