【问题标题】:How to make controller/view specific Javascript work in a Rails 3.1 production environment如何使控制器/视图特定的 Javascript 在 Rails 3.1 生产环境中工作
【发布时间】:2012-01-13 05:12:13
【问题描述】:

我正在尝试在 Rails 3.1 中创建视图/控制器特定的 Javascript。我遵循了Rails 3.1 asset pipeline: how to load controller-specific scripts?http://tech.thereq.com/post/10754558724/the-rails-3-1-asset-pipeline-in-the-real-world-jquery的方法。

这在我的开发环境中非常有用。但是,它在我的生产环境中失败了。我收到消息,ActionView::Template::Error(users.js 未预编译)。

我的 user.js.coffee 文件在 .../app/assets/javascript 目录中包含

//= require i18n/grid.locale-en
//= require jquery.jqGrid.min    
//
//= require grid_object.js

我在 .../app/views/users 中的 index.html.haml 文件包含

- javascript 'users'
...

我的 application_helper 包含

def javascript(*files)
  content_for(:head) { javascript_include_tag(*files) }
end

我的应用程序布局文件包含

%= yield(:head) %>

最后,我在 .../app/assets/javascript 中的 application.js 文件包含

//= require jquery
//= require jquery-ui

我错过了什么?

【问题讨论】:

  • 我发现它与 .../config/environments/production.rb 和 config.assets.precompile 但不确定值有关。我尝试了 config.assets.precompile

标签: javascript ruby-on-rails-3.1


【解决方案1】:

我决定为我所有需要预编译的控制器/视图特定的 javascript 使用后缀(即“_pc”)。所需的更改是:

在我看来,我用过:

- javascript require 'users_pc'

我将 users.js.coffee 文件重命名为 users_pc.js.coffee

最后,我更新了我的 .../config/environments/production.rb 文件以包含

- config.assets.precompile << '*_pc.js'

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2011-11-10
    • 1970-01-01
    • 2015-05-05
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    相关资源
    最近更新 更多