问题记录

  • 访问Alist主页显示空白,按F12打开开发人员工具 ,选择控制台,报错如下
index.75e31196.js:20  Uncaught TypeError: Cannot assign to read only property '__symbol@@0.17729640949141956' of object '[object Object]'
    at index.75e31196.js:20:187047
    at au (index.75e31196.js:20:185452)
    at t8 (index.75e31196.js:20:187014)
    at Object.Ew [as freezeMethods] (index.75e31196.js:20:187090)
    at index.75e31196.js:21:2839

问题探索和解决

网络方案

问题探究

  • 该问题的出现时Alist全局定义中使用的替换脚本导致的
    Alist访问主页显示空白解决方法-LMLPHP
<script src="https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll"></script>
  • <script> 标签引入polyfill 的 JavaScript 库,允许开发者在旧版浏览器上使用最新的 JavaScript 特性的方法。具体来说,polyfill库提供了String.prototype.replaceAll方法的实现,这是一个比较新的字符串操作方法,可能在一些浏览器中并不原生支持。

index.75e31196.js:20  Uncaught TypeError: Cannot assign to read only property '__symbol@@0.17729640949141956' of object '[object Object]'
    at index.75e31196.js:20:187047
    at au (index.75e31196.js:20:185452)
    at t8 (index.75e31196.js:20:187014)
    at Object.Ew [as freezeMethods] (index.75e31196.js:20:187090)
    at index.75e31196.js:21:2839
  • 错误信息表示在JavaScript运行时发生了类型错误(TypeError),具体是试图对一个只读属性进行赋值操作。错误通常发生在严格模式下,当代码尝试改变一个不可变的对象属性或变量时。错误信息的一些关键点:
    • Cannot assign to read only property: 这意味着代码试图修改一个对象的只读属性。
    • __symbol@@0.17729640949141956: 这是一个内部属性,很可能是JavaScript引擎内部使用的,或者是某些库给对象添加的symbol类型的属性。
    • of object '[object Object]': 指的是普通的JavaScript对象。
    • index.75e31196.js:20:187047: 这是错误发生的文件和位置(第20行,字符位置187047)。

脚本内容查看

  • 通过浏览器访问以下两个脚本地址,可以发现访问原地址可以查询到替换的脚本内容(具体俺看不懂),然后修改后的alicdn.com地址的脚本让内容为空白
#原脚本地址
https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll
#修改后的脚本地址
https://polyfill.alicdn.com/v3/polyfill.min.js?features=String.prototype.replaceAll

Alist访问主页显示空白解决方法-LMLPHP
Alist访问主页显示空白解决方法-LMLPHP

最终解决教程

  1. 访问http://服务器ip:5245/@manage或者https://域名/@manage进入控制台,打开设置->全局->自定义头部
    Alist访问主页显示空白解决方法-LMLPHP
  2. 既然,在不使用替换脚本的情况下,可以访问正常界面,那么不使用该替换脚本,也是没有问题的
    • 可以修改js引入文件内容如下,任意一个或者你使用的浏览器较新,可以将自定义头部设置为空,或者担心影响某些操作,请修改内容为第三条的代码
<!--最简单方法修改内容为空-->

<!--1 脚本地址内容为null-->
<script src="https://polyfill.io/v3/polyfill.min.js"></script>
<!--2 脚本地址内容为null-->
<script src="https://polyfill.alicdn.com/v3/polyfill.min.js?features=String.prototype.replaceAll"></script>
<!--3 脚本地址内容存在 比原来的地址的脚本内容多-->
<script src="https://polyfill.alicdn.com/v3/polyfill.min.js"></script>
  1. 修改完后,点击主页即可正常访问!
    Alist访问主页显示空白解决方法-LMLPHP
02-28 13:36