2

defer「場所」で外部jsを宣言する必要があります。私はそれ
<r:external uri="http://cdn.connect.mail.ru/js/loader.js" disposition="defer"/>がうまくいくと思っていましたが<script...、それが呼び出された場所にコードを配置するだけです。

taglibを使用して遅延場所で外部jsを宣言するにはどうすればよいですか?

Grails 2.0+、リソース プラグイン

4

1 に答える 1

4

あなたが説明したように、r:externalタグは残念ながらJavaScriptのデフォルトの性質である「defer」を尊重していないようです。また、ドキュメントによると、r:externalタグは、これを明示的に宣言するための「disposition」属性を提供していません。r:script
タグは 、スクリプトを本文の下部に正しく配置しますが、「インライン」JavaScriptのみを対象としているため、「src」属性は提供しません。

この不足している機能を回避する最も良い方法は、ApplicationResources.groovyファイルでリソースモジュールを定義することだと思います。

modules = {
    ...
    mail_loader {
        resource url: "http://cdn.connect.mail.ru/js/loader.js"
    }
    ...

次に、TagLibを使用してそれを要求します。

out << r.require(module: "mail_loader")

すでに述べたように、JavaScriptリソースのデフォルトの処理は「defer」であるため、ケースで処理を明示的に定義する必要はありません。

于 2012-12-25T23:14:08.747 に答える