往HTML的script标签添加discordInvite.init代码后页面报500错误如何解决
问题根因
你遇到的500错误属于服务端返回的解析错误,触发原因是你所用的托管服务默认开启了模板语法解析规则,直接写在HTML内script标签中的discordInvite.init({inviteCode: 'sK5R76jTmu'});代码里的大括号{}被误识别为服务端模板标签,解析失败后返回500状态码。
你在浏览器控制台执行代码不会经过服务端解析流程,所以可以正常运行;移除init行后没有触发规则的特殊字符,页面就可以正常加载。
解决方案
- 方案1:修改JS写法避开触发规则
不要直接在init方法内写带键值的大括号配置,拆分配置变量定义即可:
<script src="./discordInvite.js"></script> <script type="text/javascript"> const inviteOption = {} inviteOption.inviteCode = 'sK5R76jTmu' discordInvite.init(inviteOption) discordInvite.render() </script>
- 方案2:把内联JS迁移到外部文件
将这段初始化代码单独存为一个外部JS文件再引入到HTML中,服务端不会解析外部JS文件的内容,自然不会触发误判。 - 方案3:关闭对应页面的服务端模板解析
如果使用的托管服务支持配置,可以单独关闭当前页面的模板语法解析,避免静态内容被误处理。
内容的提问来源于stack exchange,提问作者Mohammed-Amine Bouammali
相关产品推荐
相关产品推荐

