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 放置在任何地方,当您更改应用程序的位置时,您需要修复所有这些 URL。
  2. 常见的 JavaScript 也有一些可能性,例如,您可以write将路由的值传递给 JS' someSpecificRoute = '@routes.Assets.at(link)';,然后在脚本中使用它

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

    也许您也可以使用javascriptRoutes但是您需要自己决定。一般来说,当您计划使用它们不止一次或两次时,使用它是个好主意。

  3. 最后,您可以使用硬编码路径和常见的 JavaScript 技术来发送额外的参数。在这种情况下,我只能建议,出于安全原因,最好验证传递的参数是否符合允许的类型和/或范围。

于 2012-09-19T20:08:32.470 回答