前期准备工作
你需要提前获取网站的服务器文件管理权限,可以通过FTP工具、服务器面板自带的文件管理器操作,不需要额外的专业工具。操作前请完成备份:备份迅睿CMS根目录下的config目录和当前模板所在的static目录,一旦修改出错可以快速回滚,避免影响网站运行。
核心兼容问题修复步骤
以下是迅睿CMS最常见的跨浏览器兼容问题,按顺序操作即可覆盖99%的使用场景:
1. 修复低版本IE(IE11及以下)JS语法报错问题
迅睿CMS默认的核心JS采用ES6语法,低版本IE不支持let、箭头函数等新特性,会导致导航菜单、弹窗、搜索、登录等功能完全失效,修复步骤:
- 在网站根目录新建名为
polyfill的目录,将兼容垫片文件下载到该目录:直接右键另存为链接https://cdn.polyfill.io/v3/polyfill.min.js,保存为polyfill.min.js后上传即可,也可以直接使用CDN地址,无需下载。
- 打开当前模板目录下的全局头部文件(一般为header.html或header.php),在闭合标签
之前添加以下代码:
```html
```
2. 修复flex布局排版错位问题
绝大多数新开发的迅睿CMS模板都采用flex布局,旧版安卓浏览器、低版本IE不支持flex标准写法,会出现导航错位、内容不显示问题,修复步骤:
- 打开模板目录下的全局CSS文件(一般为static/css/common.css),在文件最顶部粘贴以下兼容代码:
```css
/ flex跨浏览器兼容修复 /
{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.d-flex {
display: -webkit-box;
display: -moz-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flex-1 {
-webkit-box-flex: 1;
-moz-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.justify-content-center {
-webkit-box-pack: center;
-moz-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.align-items-center {
-webkit-box-align: center;
-moz-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.flex-direction-column {
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}
```
- 如果你模板使用的是其他自定义flex类名,只需要把代码中的类名替换成你实际使用的即可,所有属性都已经添加了不同浏览器的私有前缀,覆盖所有旧版本浏览器兼容需求。
3. 修复IE下登录跳转失效问题

部分迅睿CMS版本在IE浏览器下会出现登录成功后自动跳回登录页的问题,本质是跨域名cookie的P3P隐私政策兼容问题,修复步骤:
- 打开网站根目录下的index.php文件,在
之后第一行添加以下代码:
```php
// 修复IE跨浏览器cookie兼容问题
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
```
- 如果你的CMS部署在二级域名下,需要额外修改config目录下的cookie.php配置文件,修改`cookie_domain`项为你的主域名,示例配置:
```php
return [
'cookie_prefix' => 'xuerui_',
'cookie_domain' => '.yourdomain.com', // 修改为你自己的主域名,前面保留点
'cookie_path' => '/',
// 原有其他配置保持不变,不要修改
];
```
4. 修复微信/QQ内置浏览器滚动抖动问题
迅睿CMS站点在国内APP内置浏览器中经常出现滚动卡顿、页面抖动问题,添加CSS即可修复:
- 打开全局CSS文件,在文件末尾添加以下代码:
```css
/ 修复内置浏览器滚动抖动兼容 /
html, body {
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
touch-action: manipulation;
}
```
修复完成验证步骤
- 1. 所有修改完成后,登录迅睿CMS后台,依次点击系统设置 -> 清理缓存,清理全部系统缓存和静态缓存,如果你使用了CDN加速服务,需要同步去CDN后台刷新全站缓存。
- 2. 用不同浏览器测试:IE11打开前台,测试导航点击、弹窗弹出、登录功能是否正常;打开微信内置浏览器测试滚动、表单提交是否正常;打开移动端旧版浏览器查看排版是否整齐。
- 3. 如果功能依然异常,检查:确认你修改的是当前启用的模板目录,不是默认模板;确认粘贴代码时没有遗漏符号,Linux服务器下修改后的文件权限设置为644即可。
特殊场景处理
如果你的站点开启了全站静态化,修改完成后需要重新生成全部静态页面,否则修改不会生效。如果使用的是第三方商业模板,一般后台自带自定义CSS/JS插入功能,直接把以上代码粘贴到对应输入框保存即可,不需要修改源码文件。
如果依然存在个别JS报错,可以打开浏览器F12开发者工具,在控制台查看报错的JS文件,将该JS文件复制到在线转换工具转成ES5语法即可,在线转换地址:https://babeljs.io/repl,转换后替换原有JS文件即可解决问题。