gpt4 book ai didi

ruby-on-rails - 部署期间预编译 Assets 失败

转载 作者:行者123 更新时间:2023-12-02 02:02:41 26 4
gpt4 key购买 nike

我在部署期间使用 Capistrano 预编译我的 Assets ,但我收到一个对我不是很有用的错误。

* executing "cd -- path/to/releases/20130507161214 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"

*** rake aborted!
*** wrong argument type nil (expected Data)
*** (in /path/to/app/assets/javascripts/application.js)
*** /path/to/gems/therubyracer-0.11.4/lib/v8/context.rb:67: in 'New'

这是我引用的application.js:

//= require jquery
//= require jquery_ujs
//= require bootstrap

更新

所以我尝试完全删除 application.js 并再次运行它,但随后它提示我的另一个 js 文件(但同样的无用错误).然后我删除了我所有的 js 文件,它开始提示我的 css 文件。

如果所有的 js 和 css 文件都被删除,预编译会成功(但显然没有我需要的 js 和 css 文件)。

我正在为所有非图像 Assets 使用 .js.coffee.css.scss

更新

@TomDavies 的回答确实对我有帮助,但问题仍然存在。在部署期间,它只是在预编译时失败并且没有给我信息。所以我做了 Tom 提到的,我在我的开发机器上预编译,但在生产环境中,我发现我也有问题。

它给我的错误是“Unexpected INDENT”,但它不会告诉我行号,只是一个文件名...

我最终发现我的 ajax 请求中缺少一个逗号。显然它在开发环境中没有它就可以工作,只是没有它就不能预编译......

这是我得到的:

$.ajax 'some/url'
success:
alert 'yay!'

这是我需要的:

$.ajax 'some/url',
success:
alert 'yay!'

注意顶行末尾的逗号...现在在开发中预编译很好。我确信在开发机器(但生产环境)上预编译期间修复错误会修复部署问题,但无济于事。它仍然失败,顶部出现相同的错误 wrong argument type nil (expected Data)

tl;dr

我能够在我的开发机器上运行 rake assets:precompile RAILS_ENV=production,在生产机器上不起作用,在顶部给出错误。不确定如何调试这个。

最佳答案

这看起来像是一个可能的 gem 问题,因为它在 application.js 文件上失败并且您的内容看起来正确。您使用的是哪个版本的 Ruby?如果您切换了不同的版本,您可能需要清除您的 gems 目录并从头开始重新安装它们。我遇到过在一个 Ruby 版本下安装的 gems 留下饲料的问题,导致在另一个版本下发生奇怪的事情。

关于ruby-on-rails - 部署期间预编译 Assets 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423971/

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