【问题标题】:Rails 3.2 asset pipeline issueRails 3.2 资产管道问题
【发布时间】:2012-03-16 23:58:42
【问题描述】:

我在应用程序中定义了一个 JS 文件 - app/assets/javascripts/client/some-client.js.coffee

在我的开发环境中,我可以通过 URL 访问此文件 - /assets/client/some-client.js

但我不能在生产中做同样的事情吗? ...表示 URL 不起作用,可能是什么问题?

【问题讨论】:

  • 生产服务器上的 public/assets 目录中有哪些文件?
  • 您是否使用 Chrome 来检查任何 javascript 错误?如果是这样,它是给你一个未找到的 404 资源还是其他什么?

标签: ruby-on-rails asset-pipeline ruby-on-rails-3.2


【解决方案1】:

在 prod 中,如果您使用默认配置,您将只能访问预编译文件。

您可以在config/environments/production.rb中定义要预编译的资产:

config.assets.precompile += %w( some-client.js blabla.js some-client.css ) #etc...

运行 rake assets:precompile 以...预编译您的资产。

通过本指南了解更多信息:http://guides.rubyonrails.org/asset_pipeline.html

【讨论】:

  • 所以我添加了 config.assets.precompile += %( some-client.js ) 并尝试通过“/assets/some-client.js”访问该文件,但没有成功
  • 你在使用 Rails Javascript 辅助方法吗?
  • 你运行rake assets:precompile了吗? (如果它仍然不起作用,您可能想尝试在您的配置中添加client/some-client.js 而不仅仅是some-client.js,不确定)
  • 无论如何,您应该花时间阅读:guides.rubyonrails.org/asset_pipeline.html
【解决方案2】:

如果您还没有找到它,请确保您正在通过 访问它。当资产管道处理查找它预编译资产的位置时。连同 config.assets.precomile += %( some-client.js )。此外,如果辅助函数在生产中找不到,您可能想尝试将 client/ 移动到 assets/javascript/client 我认为它会在 app/assets/javascripts/lib/assets/javascripts/ 中查找资产,例如 javascripts 文件和 vendor/assets/javascripts/ 如果我了解资产管道。而且看起来您在任何这些文件中都没有它,因此它可能会跳过它,因为它看不到它。

编辑:

看起来你有它在 javascripts/对不起。资产管道应该遍历子目录。

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 2013-05-12
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多