0

我试图在我的 Rails 布局中包含一个 Javascript 文件,前提是它没有从 CDN 加载,例如在纯 Javascript 中我会执行以下操作;

<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script>
    window.Modernizr || document.write('<script src="assets/js/modernizr.2.6.2.min.js"><\/script>');
</script>

我将如何使用 Rails 资产管道进行这项工作?

我试过这个,

<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script>
    window.Modernizr || document.write('<%= javascript_include_tag "modernizr-2.6.2" %>');
</script>

但这写成,

<script>
        window.Modernizr || document.write('<script src="/assets/modernizr-2.6.2.js?body=1"></script>

然后它以某种方式进入我的正文 HTML 并离开,"');"在我的正文标签中。所以标签没有正确关闭。

有谁知道如何让它工作?

4

1 回答 1

0

要获得所需的输出,请使用escape_javascript帮助器。

要使用您的示例:

<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script>
    window.Modernizr || document.write('<%= j(javascript_include_tag("modernizr-2.6.2")) %>');
</script>

j()是的别名,escape_javascript()看起来更整洁。

希望这可以帮助。

于 2014-01-10T09:13:17.317 回答