【问题标题】:Asset was not declared to be precompiled in production (Rails 5.0.0.1)资产未声明为在生产中预编译(Rails 5.0.0.1)
【发布时间】:2016-12-03 10:18:15
【问题描述】:

我是Rails 5.0.0.1的新手

我遵循http://guides.rubyonrails.org/asset_pipeline.html#controller-specific-assets中的指导方针:

您还可以选择仅在各自的控制器中包含特定于控制器的样式表和 JavaScript 文件,方法如下:

<%= javascript_include_tag params[:controller] %><%= stylesheet_link_tag params[:controller] %>

执行此操作时,请确保您没有使用 require_tree 指令,因为这会导致您的资产被多次包含。

我生成了一些脚手架(也生成了资产——.coffee.scss

当我执行rails s 并访问脚手架的主页之一时,它产生了一个错误:

资产未声明为在生产中预编译。

Rails.application.config.assets.precompile += %w( myscaffold.css ) 添加到config/initializers/assets.rb 并重新启动您的服务器


我按照它说的做了,它奏效了,但是有没有任何其他方法来简化这个过程

我希望我可以使用它们的资产生成其他一些脚手架或控制器,而无需再担心在 config/initializers/assets.rb 中添加新行。

我也会收到任何其他替代品。

【问题讨论】:

    标签: ruby-on-rails-5


    【解决方案1】:

    你试试这个..

    检查你的Gemfilegem 'sprockets-rails', '2.3.3'

    还有bundle install

    【讨论】:

    • 它正在工作@karthick。我使用版本3.2.0。请问为什么应该是版本2.3.3?非常感谢
    • 我在上一个项目中使用了那个版本..你更新也可以放版本。没问题..
    • 做到了。我不知道,如果不使用动态资产链接的动态编译,那么垃圾邮件将如何提高生产力,我不知道......
    • 我认为这里发生的事情是,较新的 sprocket-rails gem 添加了错误消息“资产未声明为在生产中预编译”。警告开发人员否则会在生产中发生的错误。在大多数开发工作流程中,您不会经常遇到此问题,因为使用 sprockets/asset pipeline 您倾向于将所有样式/javascripts 编译到一个(或几个)文件中。
    • 我推荐bundle update 而不是bundle install
    【解决方案2】:

    浏览文件

    config/initializers/assets.rb
    

    然后添加

    Rails.application.config.assets.precompile += %w( your_file_name.scss )
    

    重启服务器

    【讨论】:

    • 这并没有为我解决问题
    猜你喜欢
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 2013-05-08
    • 2016-03-24
    • 2016-10-26
    相关资源
    最近更新 更多