文章目录
- 问题记录
- 问题探索和解决
- 网络方案
- 问题探究
- 脚本内容查看
- 最终解决教程
问题记录
- 访问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
问题探索和解决
网络方案
- UP主云箩提供的方案【Alist疑难杂症】解决Alist搭建后出现的白首页/加载不出资源问题,可以解决问题
问题探究
- 该问题的出现时Alist全局定义中使用的替换脚本导致的
<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
最终解决教程
- 访问
http://服务器ip:5245/@manage
或者https://域名/@manage
进入控制台,打开设置->全局->自定义头部
- 既然,在不使用替换脚本的情况下,可以访问正常界面,那么不使用该替换脚本,也是没有问题的
- 可以修改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>
- 修改完后,点击主页即可正常访问!