我正在Yaws驱动的网站上运行Nitrogen Web框架。在过去的三年中,它一直可以在所有浏览器上正常工作。但是最近,回发可能会意外地在Google Chrome和Opera中无法响应。出现Uncaught ReferenceError控制台中的错误:未定义氮。引用的错误行显示了这一点

Nitrogen.$set_param('pageContext', 'j-oHyfcHcpNAZCWh7t6Y5EBqMbhta0E01Fl0jNMCOlr0YfeAEUGiprZ21Oqs1rDf6nutqrfw5LPfy9W1x8kk_k4-Z_adkaQy9Ijk66RY7hoi0kIbsf6RV34ZCJp8YXOu9SGNGe8tHLS-JbeiVzhzBIqfSUC5KXu1eLjVhzip_Z_dAxRWu3yzgG8pgCLvWqSIG8LbeG-C4kPZIrYQL9Y27cDdQHTLN1nbStbMekOw6Iviu-F19Jp5RW2ojIrkH2AscKqwIg');


我试图找出错误的原因,但徒劳无功,更让我感到困惑的是,它只是启动了,而不是在每个浏览器上,而不是在每个计算终端上。

这是我的模板的样子

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <title>[[[page:title()]]]</title>
   <script src='/nitrogen/jquery.js' type='text/javascript' charset='utf-8'></script>
   <script src='/nitrogen/jquery-ui.js' type='text/javascript' charset='utf-8'></script>
   <script src='/nitrogen/livevalidation.js' type='text/javascript' charset='utf-8'></script>
   <script src='/nitrogen/nitrogen.js' type='text/javascript' charset='utf-8'></script>
   <script src='/nitrogen/bert.js' type='text/javascript' charset='utf-8'></script>
   <link rel="stylesheet" href="/nitrogen/jquery-ui/jquery.ui.all.css" type="text/css" media="screen" charset="utf-8" />
   <link rel="stylesheet" href="/nitrogen/nitrogen.css" />

   <!-- For google analytics -->
   <script>
    ...some google code here ....
   </script>
</head>

<body ">
  [[[page:body()]]]
  <script>
    [[[script]]]
  </script>
</body>
</html>


请帮忙。

最佳答案

首先,我怀疑这是相关的,但是您的标签中是否确实有一个杂散的,未闭合的双引号(“),或者仅仅是杂散的复制粘贴残留,这对我来说是第一件事。

其次,导致此错误的原因有点难以捉摸,但是您可以通过以下一些线程来尝试解开这个奥秘:


错误“未定义氮”只能由以下几种原因之一引起:


根本不加载nitrogen.js脚本(提供静态内容失败)。您可以在CTRL + SHIFT + I中检查“网络”选项卡,以查看nitrogen.js的响应是什么
nitrogen.js脚本崩溃了,该脚本将在js控制台中显示,但是您没有提到它,因此可能不是这样。
发生了某事,称为Nitrogen=undefined



照这样说:


您是否可以自己重现此错误,还是要查看用户报告?
当回发失败时,它们是在页面加载后发生了其他事情而失败还是在页面加载时立即失败了?


对于我来说,这绝对是一个新错误-并不是我遇到的问题,除了某些原因导致静态内容首先无法加载时。

08-19 01:16