如何在Rails 4中将javascript_include_tag与js.erb文件一起使用?

前端之家收集整理的这篇文章主要介绍了如何在Rails 4中将javascript_include_tag与js.erb文件一起使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是我的看法:
<%= javascript_include_tag "social_sharing.erb" %>

然后我有:assets / javascripts / social_sharing.erb.js,其中包含一些ERB标签,例如<%= post.id%> …

第一个问题是我看到此错误消息:

`Asset filtered out and will not be served: add `Rails.application.config.assets.precompile += %w( social_sharing.erb.js )` to `config/initializers/assets.rb` and restart your server

如果我遵循这些指示,那么我将获得js文件,但没有评估任何ERB标记,所以我仍然看到<%= post.id%>在链接的js文件中.

解决方法

文件应命名为assets / javascripts / social_sharing.js.erb(最后使用.erb),否则Rails资产管道将不知道处理它并将其作为纯JavaScript进行提供. include标记应为<%= javascript_include_tag“social_sharing.js”%>而不是.erb,虽然 the .js is optional.

资产文件夹中的所有内容都将通过asset pipeline进行处理,并可以通过asset helper tags轻松获取.

但是,javascript_include_tag和资产管道是真正的静态资产,只能预编译一次,然后为每个相关请求提供相同的文件.如果您尝试包含动态内容,例如<%= post.id%>从请求到请求会有所不同,您可能希望将.js.erb文件移动到views目录中的某个位置并将其呈现为部分,类似于this question的第一个答案:

<script>
    render partial: '[somewhere]/social_sharing',post: @post
</script>

文件也需要重命名为_social_sharing.js.erb.

原文链接:https://www.f2er.com/js/158493.html

猜你在找的JavaScript相关文章