在 Serv00 的虚拟主机上安装的 Flarum 程序有一个影响访问体验的问题:点击主页的“刷新”按钮(即:
)后,主题列表会显示“这里空空如也…”,但是手动刷新整个页面又能加载出来。实际上,我们可以通过给 Flarum 发起的请求加上一个变化的时间戳来解决这个问题。
首先,在 Serv00 上安装好 Flarum 后,使用任意代码编辑器打开 Flarum 安装目录中的 vendor/flarum/core/views/frontend/app.blade.php
,在 <title>{{ $title }}</title>
下方加上:
<script>
// Request urls with timestamp when necessary
if (window.location.pathname != '/admin' ) {
window._yucho_XMLHttpRequest = window.XMLHttpRequest;
window.XMLHttpRequest = function () {
var _xhr = new window._yucho_XMLHttpRequest();
_xhr._open = _xhr.open;
_xhr.open = function (method, url, async = true, username = null, password = null) {
let url_obj = new URL(url);
let usp = new URLSearchParams(url.search);
usp.set('timestamp', Date.now());
url_obj.search = '?' + usp.toString();
var _url = url_obj.toString();
//console.log(_url);
_xhr._open(method, _url , async, username, password);
}
return _xhr;
}
}
</script>
或者:(压缩版)
<script>if(window.location.pathname!='/admin'){window._yucho_XMLHttpRequest=window.XMLHttpRequest;window.XMLHttpRequest=function(){var _xhr=new window._yucho_XMLHttpRequest();_xhr._open=_xhr.open;_xhr.open=function(method,url,async=true,username=null,password=null){let url_obj=new URL(url);let usp=new URLSearchParams(url.search);usp.set('timestamp',Date.now());url_obj.search='?'+usp.toString();var _url=url_obj.toString();_xhr._open(method,_url,async,username,password)}return _xhr}}</script>
然后保存。
再刷新一下页面,问题应该就解决了。
演示地址
支持新用户注册,数据共通,打不开/加载慢请使用特殊手段加速。用的是网上别人的免费域名,随时凉凉,不要存储重要数据。
未使用此方法:[链接登录后可见]
使用此方法:[链接登录后可见]