gpt4 book ai didi

ruby-on-rails - Rails 应用程序中包含 Javascript 的问题

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:50 26 4
gpt4 key购买 nike

我使用的是 Rails 3.2.8。部署应用程序后,访问包含 javascript 的 View :

<%= javascript_include_tag "epiceditor" %>

Heroku 失败并显示此日志:

ActionView::Template::Error (/app/app/assets/javascripts/epiceditor.js.erb has already been required

我检查了一些可能的解决方案,比如检查任何可能触发循环依赖的引用,或者简单地删除它以防它被包含在其他地方,但事实并非如此。因此,如果我包含它,我会收到此“已包含错误”,如果我不包含,则该文件根本不会包含。

我的 config/application.rg 有这个

    config.assets.initialize_on_precompile = false

applications.js 有这个:

//= require jquery
//= require jquery_ujs
//= require tabs

注意标签引用的文件是“epiceditor.js.erb”可能很重要,因为它有一些我需要的嵌入式 Rails 代码。

谢谢你的帮助

编辑:

我认为这是 Sprockets 中的错误。如果我将 Rails 更新到 3.2.9rc2,现在的错误是:ActionView::Template::Error(资源逻辑路径无扩展名:epiceditor/.js

当然,epiceditor 中的扩展名是 epiceditor.js.erb,我也尝试在 javascript_include_tag 中对其进行明确说明。

最佳答案

我发现了错误。事实证明,在我调用的 .js.erb 文件中

<% asset_path 'epiceditor/' %>

它应该扩展到放置所有 epiceditor 文件的路径,但实际上是以递归方式加载文件本身。这在开发环境中正常扩展,但在生产环境中不正确。有趣,对吧?这样做的原因是添加了摘要。所以我用这个解决了整个问题:

<%= asset_path 'epiceditor/', :digest => false %>

现在它确实扩展到目录,并且不会落入递归陷阱。

希望这能为某人节省一些时间!

关于ruby-on-rails - Rails 应用程序中包含 Javascript 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13674762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com