1

私の公開ファイルには、通常次のものを使用します。

@routes.Assets.at("data/table.txt")

通常のhtmlで

ただし、変数リンクを含むJavaScriptがあります

var file = "table.txt"//This changes depending on the code
var link = "data/"+ file;

そして、このようなjquery関数を実行したいと思います

$('#mydiv').CSVToTable(@routes.Assets.at(link))

しかし、これはうまくいきません。私の質問

  1. play が @routes.Assets.at を使用するのはなぜですか? ある意味でより安全ですか?渡されたものに「資産」を追加しているように見えます。テキスト「/assets/data/table.txt」を使用するだけのデメリットはありますか?
  2. javascript 変数を @routes.Assets.at に渡すにはどうすればよいですか

ありがとうございます!

4

1 に答える 1

2
  1. それははるかに...快適です(誰がゲストですか?:))アセットのルートを使用しているときに、つまり切り替えることができます。CDN 間ははるかに高速です。ハードコーディングされた URL をどこにでも配置する場合、アプリの場所を変更するときにすべてを修正する必要があります。
  2. 一般的な JavaScript にもいくつかの可能性があります。たとえばwrite、ルートの値を JS に渡しsomeSpecificRoute = '@routes.Assets.at(link)';、それをスクリプトで使用することができます。

    $('#mydiv').CSVToTable(someSpecificRoute);
    

    javascriptRoutesを使用することもできますが、自分で決める必要があります。一般に、複数回使用する予定がある場合は、使用することをお勧めします。

  3. 最後に、追加のパラメーターを送信するために、ハードコードされたパスと一般的な JavaScript 手法を使用できます。そのような場合、セキュリティ上の理由から、渡された引数が許可された型および/または範囲に適合するかどうかを検証することが最善であるとアドバイスすることしかできません。

于 2012-09-19T20:08:32.470 に答える