Ruby on rails Rails应用程序中包含Javascript的问题
我使用的是Rails 3.2.8。部署应用程序时,访问包含javascript的视图:Ruby on rails Rails应用程序中包含Javascript的问题,ruby-on-rails,ruby,ruby-on-rails-3,heroku,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Heroku,Ruby On Rails 3.2,我使用的是Rails 3.2.8。部署应用程序时,访问包含javascript的视图: <%= javascript_include_tag "epiceditor" %> 我已经检查了一些可能的解决方案,比如检查任何可能触发循环依赖的引用,或者简单地删除它,以防它被包含在其他地方,而不是。所以,如果我包含它,我会得到这个“已经被包含错误”,如果我没有,那么文件就根本不被包含 我的config/application.rg有以下内容 config.assets.initia
<%= javascript_include_tag "epiceditor" %>
我已经检查了一些可能的解决方案,比如检查任何可能触发循环依赖的引用,或者简单地删除它,以防它被包含在其他地方,而不是。所以,如果我包含它,我会得到这个“已经被包含错误”,如果我没有,那么文件就根本不被包含
我的config/application.rg有以下内容
config.assets.initialize_on_precompile = false
而applications.js有以下功能:
//= require jquery
//= require jquery_ujs
//= require tabs
可能需要注意的是,标记引用的文件是“epiceditor.js.erb”,因为它包含一些我需要的嵌入式Rails代码
谢谢你的帮助
编辑:
我相信这是链轮中的一个缺陷。如果我将Rails更新为3.2.9rc2,则错误如下:
ActionView::Template::Error(资产逻辑路径没有扩展名:epiceditor/.js
当然,epiceditor中的扩展名是epiceditor.js.erb,我也尝试在javascript_include_标记中明确说明它。我发现了错误。
结果是在我调用的.js.erb文件中
<% asset_path 'epiceditor/' %>
它应该扩展到所有epiceditor文件所在的路径,但实际上是以递归方式加载文件本身。这是在开发环境中正确扩展,而不是在生产环境中。很有趣,对吗?
这样做的原因是添加了摘要。因此,我用以下内容修复了整个问题:
<%= asset_path 'epiceditor/', :digest => false %>
false%>
现在它确实扩展到了目录,并且没有落入递归陷阱
希望这能为某些人节省一些时间!你说Heroku失败了;我认为它在开发环境中工作?是的,它在开发环境中工作。在Heroku生产环境中失败了。只是要确定,当你说它在开发中工作时,文件是包含在你的HTML中,还是页面刚刚加载而没有错误?看到你的内容了吗你的application.js文件,epiceditor.js.erb文件将不会被加载,除非你特别称它为:require epiceditor,或者除非你在文件夹中的其余文件中加载:require tree.,(我认为这是正确的语法-我刚刚从内存中编写)。我在必要的页面中明确地将其包含在via中,并且确实在开发环境中使用。如果我使用require_tree,它也可以工作,但同样,只在开发中工作。您确定不可以,在application.js中执行//=require_tree吗?
<%= asset_path 'epiceditor/', :digest => false %>