2

Yii フレームワーク v1.1.10r3566 を使用しています。生成されたコードがエラーを生成していることに Firebug で気付きました。「jQuery is not defined」と表示され、行には関数「jQuery(function($)」があります。複数のページで発生しており、zii ウィジェットが正しく動作していないと思われます (以前は CJuiDatePicker が機能していませんでした)。 jQuery を使用してルーチンを作成したり、他の JavaScript ライブラリを含めたりすることはありません。エラーを生成しているページの 1 つで生成されたコードは次のとおりです。

<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>

Google のホットリンクされたAPI ライブラリを使用して説明されているように、1.7.2 を必要な jQuery バージョンに置き換えることに注意してください。

問題が解決した場合は、ローカルの 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

コンポーネント->assetManager->linkAssetsをtrueに設定して、アセットの「最新」バージョンが使用されていることを確認した後、同様の問題が発生しました。次に、アセットフォルダを忘れてワイプしました。これにより、元のアセットがすべて削除されました。

便利なことに、元の状態に戻すことができ(バージョン管理ftw)、すべてが復元されました。同様の苦境にある他の人にも役立つかもしれません。

于 2012-06-20T14:05:41.613 に答える