0

Play Framework 1中,是否有一个标签在生成的页面中只包含一次 javascript 文件?

例子:

我想要以下代码:

#{press.script 'my.script.js'}
#{press.script 'my.script.js'}

只将my.script.js声明注入结果页面一次,以便 Play 生成以下内容:

<script src="/path/to/my.script.js"></script>

请注意,press模块应该是version >= 1.0.22.

到目前为止,除了不需要的东西之外的任何东西都被发现了:

  • #{press.script 'my.script.js'}当使用相同的 js 文件指定两次时简单地抛出异常
  • 模块的版本添加了1.0.11标签属性,根据文档,它应该做需要做的事情,但在下一个版本中它被神秘地删除了......pressignoreDuplicates
  • 模块版本1.0.12增加press了添加press.allowDuplicates到配置的可能性,但在下一个版本中,它又被神秘地删除了......
  • #{press.single-script 'my.script.js'}简单地压缩js文件并<script>在生成的文件中添加两次

请指教

4

1 回答 1

1

我不认为有。我已经解决了类似的问题。

假设我有一个模板,main.html. 所有其他模板都扩展了这一模板。Main.html包括scripts.html. 基于当前 URL,Controller 渲染form.htmlextends main.html。在form.html我有一个需要my.script.js. 为确保它仅包含在此页面中(需要脚本),我设置了以下变量:

#{set useMyScript: true /}

scripts.html中,我将检查此变量并仅在需要时呈现此脚本:

#{if useMyScript}
    #{press.script 'my.script.js'}
#{/if}

所以,这不完全是你的情况,但我很确定你可以使用这个解决方案多次将 useMyScript 设置为 true 并且只包含一次 Javascript。

我希望这有帮助!

于 2013-04-10T14:36:27.900 回答