1

我在 Yaws 驱动的站点上运行 Nitrogen Web 框架。在过去的三年里,它在所有浏览器上都能正常工作。但最近回发可能无法在 Google Chrome 和 Opera 中响应。在Uncaught ReferenceError: Nitrogen is not defined的控制台中出现错误。引用的错误行显示了这一点

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>

请提供任何帮助。

4

2 回答 2

0

首先,我怀疑它是否相关,但是您的标签中是否真的有一个杂散的未闭合双引号(“),或者只是一个杂散的复制粘贴残留物。这是我最突出的第一件事。

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

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

照这样说:

  • 您是否能够自己重现此错误,或者您是否正在处理用户报告?
  • 当回发失败时,它们是在页面加载和其他事情发生后失败,还是在页面加载时立即失败?

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

于 2016-07-25T18:22:39.277 回答
0

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

于 2017-03-13T09:19:37.400 回答