在运行时在Symfony2中包含Zepto或jQuery

时间:2013-04-15 23:21:30

标签: php javascript symfony zurb-foundation

我正在尝试在Symfony2中加入Foundation框架。

我复制了app / Resources文件夹中的所有css / js资产,并且能够引用它们。然而,有一部分没有得到适当的包括:

 <script>
  document.write('<script src=' +
  ('__proto__' in {} ? '../app/Resources/public/js/vendor/zepto' : '../app/Resources/public/js/vendor/jquery') +
  '.js><\/script>')
  </script>

那是我无法加载jQuery或Zepto。如何转换上述语句,以便它使用Symfony 2资产语法。

类似的东西:

  <script>
if ('__proto__' in {})
{
  {% javascripts '../app/Resources/public/js/vendor/zepto.js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>      
{% endjavascripts %}
}

Else
{
  {% javascripts '../app/Resources/public/js/vendor/jquery.js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>      
{% endjavascripts %}
}

我知道我可以轻松地将基础资产复制到网络文件夹并完成它但我希望我保持标准,并且能够隐藏库。

非常感谢

1 个答案:

答案 0 :(得分:2)

这可能会成功。

<script>
var zeptoSrc = "{% javascripts '../app/Resources/public/js/vendor/zepto.js' %}{{ asset_url|e('js') }}{% endjavascripts %}";
var jquerySrc = "{% javascripts '../app/Resources/public/js/vendor/jquery.js' %}{{ asset_url|e('js') }}{% endjavascripts %}";

document.write('<script src="' + ('__proto__' in {} ? zeptoSrc : jquerySrc) + '"><\/script>');
</script>