有时候,你好不容易把网狐大厅跑起来,结果前台点个介绍页,啪一下弹出来一个 Internet Explorer 脚本错误,行数、字符、错误码一堆信息看得人脑壳疼。
这不,上图就是个典型例子:
经典提示:
行: 173
Char: 17
错误: 缺少对象
代码: 0
URL: http://你的域名/GameRules.aspx?KindID=114
熟悉不?
别慌,下面就把我自己踩坑、修坑、填坑的经验,通通摊出来给同行看看,纯技术分享,绝不带跑偏。
一、先看 URL:KindID 是关键
这种网狐大厅前台介绍页,URL 都会带个参数:
KindID=114
这就是核心——它告诉页面要找哪一个 规则文件。
所以第一件事:
-
去服务器上
/GameRules/
目录里翻翻, -
有没有
114.htm
或者114.aspx
, -
名字对不对,大小写对不对,扩展名对不对。
有些老运维就把 114.html
丢进去,结果前台是写的 .htm
,IE 可不认智能匹配,直接就 “缺少对象”。
二、再看路径:是 GameRules
还是 GameRule
别小看这个 s
,我真见过老版本里写:
GameRule/114.htm
结果 IIS 上是 GameRules
,那肯定 404。
最稳妥:
-
对照 IIS 或 Nginx 配置,
-
URL 路径、实际目录,必须一字不差。
要是懒得折腾,可以直接把文件挪到浏览器实际请求的那个路径,少折腾。
三、前台脚本写得靠不靠谱
缺少对象
,说人话就是:
document.getElementById('xxx')
找不到 xxx
。
那为什么找不到?
-
规则页里根本没写那个 ID。
-
有条件判断,没加载出来。
-
iframe
引用的外链文件根本 404。
最简单:
-
打开浏览器调试台(哪怕是 IE 也行)
-
在页面里
Ctrl+F
找一下那个对象 ID 到底有没有。
没有就补,有就检查拼写。
四、低级坑:端口、权限、缓存
别以为前台错就是前台锅,有时真是部署没做好。
-
IIS 没有对
/GameRules/
放行,403。 -
文件上传了,结果只传了链接,没传真文件。
-
本地测 OK,线上换了路径没清缓存,还看老页面。
这些都能让你怀疑人生。
五、实用临时方案
有时候,规则页多得一塌糊涂,一个个上传太烦?
老鸟会直接:
-
改成
/GameRule/%dlhtm
,配一个万能的动态页面, -
KindID 传进去后,由后端直接渲染,
-
前端只负责展示。
当然,这是临时方案,真要长期用,最好还是每个规则单独生成。
小结:别怕,看透了都简单
网狐大厅这套前台介绍页报错,一般就这仨点:
-
路径对不对?
-
文件在不在?
-
ID 拼写错没?
别被一堆弹窗吓唬住,慢慢排,99% 能搞定。
附:经典脚本错误弹窗截图
写在最后
老系统,老坑,但有人用就得有人修。希望这篇踩坑记录能帮你少熬点夜,少掉几根头发。