2

我正在使用 Yii 框架 v1.1.10r3566。我在 Firebug 中注意到生成的代码正在产生错误。它说“未定义 jQuery”,并且该行有一个函数“jQuery(function($)”。它发生在多个页面上,我相信它会阻止我的 zii 小部件正常运行(以前 CJuiDatePicker 无法正常工作)已经工作了)。我没有使用 jQuery 编写任何例程,也没有包含任何其他 javascript 库。在生成错误的页面之一上生成的代码是:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<!-- blueprint CSS framework -->
<link rel="stylesheet" type="text/css" href="/myapp/css/screen.css" media="screen, projection" />
<link rel="stylesheet" type="text/css" href="/myapp/css/print.css" media="print" />
<!--[if lt IE 8]>
<link rel="stylesheet" type="text/css" href="/myapp/css/ie.css" media="screen, projection" />
<![endif]-->
<link rel="stylesheet" type="text/css" href="/myapp/css/main.css" />
<link rel="stylesheet" type="text/css" href="/myapp/css/form.css" />
<script type="text/javascript" src="/myapp/assets/ef86d901/jquery.js"></script>
<script type="text/javascript" src="/myapp/assets/ef86d901/jquery.yiiactiveform.js"></script>
<title>myapp - Login</title>
</head>

我束手无策,不知道生成的代码为什么会产生此错误。帮助将不胜感激。

4

4 回答 4

3

该错误通常是未安装jQuery 框架的结果。看起来你jquery.js是你的 jQuery 框架,因为你提到你自己没有使用任何自定义标记。

一个快速测试是替换这个:

<script type="text/javascript" src="/myapp/assets/ef86d901/jquery.js"></script>

有了这个:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

请注意将 1.7.2 替换为您所需的 jQuery 版本,如使用 Google 的热链接API 库所解释的那样。

如果这解决了您的问题,请检查本地 jQuery 文件的路径或考虑使用Google 的热链接 API 库,它还有其他好处,您可以阅读.

于 2012-05-29T19:55:29.630 回答
2

您应该在所有控制器/操作中包含 jquery,为此,将此代码插入 Controller.php(应用程序中所有控制器的最父级)

public function beforeAction($action)
   {

      $cs = Yii::app()->clientScript;
      $cs->registerCoreScript('jquery');

   }
于 2012-05-30T09:24:05.603 回答
1

我遇到了同样的问题,然后我查看了“ View Source”,那里jquery是从资产和“ js”目录中加载的。所以我删除了registerScriptFile('js/jquery');. 然后它工作正常,因为jquery它只从资产加载。

于 2013-12-31T05:19:02.760 回答
0

在我将 components -> assetManager -> linkAssets 设置为 true 以确保正在使用资产的“最新”版本之后,我遇到了类似的问题。然后我忘记了,并擦除了我的资产文件夹,它删除了所有原始资产!

我很方便地恢复了原件(版本控制 ftw),一切都恢复了。可能对处于类似困境的其他人有用。

于 2012-06-20T14:05:41.613 回答