知道了,知道了,已经在改了!夜间模式受缓存影响无法正常使用

虽然在13号时已经“开发”出了夜间模式,但是知道第二天的14号才开始实装。还是登陆状态一切都很好,可是退出登陆状态就发现问题了。

由于是在使用LiteSpeed Cache的机器搭建的WordPress上面进行测试的所以发现一些正常退一万步来说即使退出登陆了也能正常使用。由于已经排除了是CDN缓存的原因我当前只能把怀疑的原因放在WP Super Cache这里了。我怀疑是因为WP Super Cache将网页生成了HTML文件,可是却将访客选择夜间模式新增的引用样式也给加进去了而且问题还在于有些没有的也经过缓存生成了非夜间模式的HTML。

发现问题后我第一时间却不是暂停使用而是在寻求解决的办法。我一开始准备使用CSS的表达式的但是我不会,后来准备引用PHP来当CSS样式文件觉得不安全就换成通过.htaccess文件来现在。

于是在晚上(2019年12月15日)查找资料决定同.htaccess判断cookie来决定是否加载夜间模式这个样式,可是由于技术原因老是不能成功,反倒是放在根目录时只能将跟目录里面一个其他.php文件给限制成功了,不知道要如何写规则才能限制到要限制的目录。

后面又将原本引用的外部样式改成php文件,通过判断cookie输出需要的样式,本来也好好的可能也是因为可能由于历史缓存原因而暂时将夜间模式功能下线了。折腾了这么久其实测试关闭一下WP Super Cache看看还有没有问题就可以了可是我为什么就不这样做呢?

最后暂时下线的原因很大概率是怕引用php文件来当css文件不安全,虽然这样设置后即使缓存生成的是引用了该样式的html只要该php文件没有被缓存就可以正常了。可惜在使用时也可能因为历史缓存没有删除干净而导致首页是没有引用样式的页面。

这次不知道又要咕多久才出夜间模式了。

问大佬个问题/斜眼笑我给主题加了个夜间模式,是通过在header.php判断cookie然后加个外部css实现的。可是由于开启了缓存会生成含有css或者没有css文件的html,导致无法正常使用夜间模式。现在我打算把那个外部css用php判断cookie动态输出请问这样做有风险吗?/托腮
#RewriteEngine On # 启动URL Rewrite引擎
#RewriteCond %{HTTP_COOKIE} !^.*(?:isDark=true).*$ # 对于Cookie里面没有特殊记录的请求进行重定向
#RewriteRule ^.*$ error.html # 将非法访问重定向到错误页面

所以为什么不用js呢?可能是因为会闪吧!(虽然我没有试过)

ChiuYut

2019年12月16日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!