未捕获参考错误:未定义氮气

Uncaught ReferenceError: Nitrogen is not defined

本文关键字:未定义 错误 参考      更新时间:2023-09-26

我正在Yaws驱动的站点上运行一个Nitrogen web框架。在过去的三年里,它在所有浏览器上都能正常工作。但最近的回邮可能无法在谷歌Chrome和Opera中做出响应。控制台中的错误为未捕获参考错误:未定义氮气。参考的错误行显示此

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>

请帮忙。

首先,我怀疑它是否相关,但你的标签中是否真的有一个游离的未闭合双引号("),或者这只是一个游离复制粘贴残余。这是我第一个注意到的问题。

其次,这个错误的原因有点难以捉摸,但这里有一些线索可以用来解开这个谜团:

  • 错误"氮气未定义"可能仅由以下几种原因之一引起:
    1. 根本没有加载nitrogen.js脚本(提供静态内容失败)。你可以在CTRL+SHIFT+I中查看"网络"选项卡,看看nitrogen.js的响应是什么
    2. nitrogen.js脚本崩溃了,它会显示在js控制台中,但你没有提到它,所以可能不是这个
    3. 发生了调用Nitrogen=undefined的事件

话虽如此:

  • 你能自己重现这个错误吗?还是你要处理用户报告
  • 当回发失败时,它们是在页面加载和其他事情发生后失败,还是在页面加载时立即失败

这对我来说绝对是一个新的错误-这不是我遇到过的问题,除了,当有东西导致静态内容无法加载时。

我在使用氮气时也遇到了同样的问题,我将这些文件(jquery.js、jquery-ui.js…模板html中提到的文件)复制到目录"./site/static/negon"中,问题已经解决。这些js文件可以在"./lib/nitrogen_core/www"中找到,如果你在安装包中找不到它们,你可以下载氮气的binares版本。