0

アプリ全体で使用されるすべての共通リソースをロードするレイアウトがありますが、ajax を介してページをロードすると、gsp 自体がレンダリングされ、ajax 呼び出しが (firebug を介して) js ファイルをダウンロードすることがわかりますが、実際のコードは実行されません。 .

次の方法で、ajax をロードしたページから js ファイルをダウンロードして実行しようとしましたが、成功しませんでした。どんな助けでも大歓迎です。

使用されたアプローチ

<r:require modules="announcements" />
<r:layoutResources/>

結果: js ファイルはダウンロードされましたが、実行されませんでした

使用されたアプローチ

<g:javascript library="announcements"/>

  with and without

  <r:layoutResources/>

結果: ファイルはダウンロードされませんでした

アプローチ:

<script type="text/javascript" src="js/announcements.js"></script>

結果: http コード 302 一時的に移動して js/static/announcements.js をダウンロードしようとすると、http コード 200 が返されますが、firebug はまだファイルを待っているため実行されないことを示しています。

レイアウト.gsp:

<html>
  <head>
    ...
      <g:if test="${session.isLoggedIn}">
        <r:require modules="ui, jqueryDateFormat, loggedin" />
      </g:if>
      <g:else>
        <r:require modules="ui" />
      </g:else>
      <r:layoutResources/>

      <g:layoutHead />
  </head>
  ...
</html>

ajax で読み込まれたページ

<html>
  <head>
    <all methods mentioned above>
    ...
  </head>
  <body>
    ...
  </body>
</html>

更新: 問題を解決しました。JS ファイルに構文エラーがあったことがわかりました。Firebug はエラーを特定しませんでした。JS がクラッシュしたために停止しただけです。エラーを見つけるために、ライブラリ呼び出しをレイアウトに移動する必要がありました。JS を修正し、gsp に行を追加して移動し、すべてが再び機能しました。

4

1 に答える 1

0

これが最も正しい方法です。

<script type="text/javascript" src="js/announcements.js"></script>

302 が 200 を生成するが、ファイルがダウンロードされない場合は、Web サーバーの構成を確認する必要があります。

于 2013-01-09T00:47:47.500 に答える