【问题标题】:rails 4 assets not working in productionrails 4资产在生产中不起作用
【发布时间】:2013-12-17 19:28:51
【问题描述】:

几个月以来,我一直在使用 bootstrap-sass,直到我进行了捆绑更新。起初资产不​​会预编译,因为 gem 已更新到版本 3。我将 gem 更改为 bootstrap-sass, '2.3.2.0' 以强制它使用版本 2.3,因为简单表单不支持 bootstrap 3。

现在 bootstrap 可用于开发,但不能用于生产。尽管 capistrano deploy 进行了预编译,但似乎找不到资产。

gem 'sass-rails', '>= 3.2'

gem 'bootstrap-sass', '2.3.2.2'

gem 'bootswatch-rails'

在我的 js 控制台中,我看到这是一个正确的指纹,但是 application.css 有几个文件具有不同的指纹:-

GET http://app.sportdata.com.au/assets/application-b0204eeff0e69f0476f26848303a9b7d.css 404 (Not Found) sports:18
GET http://app.sportdata.com.au/assets/application-a130dbe196c4f76b2ce46bc61cd2e18d.js 404 (Not Found) sports:20

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap ruby-on-rails-4


    【解决方案1】:

    打开 config/environments/production.rb 并确保以下选项设置为 true:

    # Don't fallback to assets pipeline if a precompiled asset is missed
    config.assets.compile = true
    

    然后运行:

    rake assets:precompile --trace RAILS_ENV=production
    

    【讨论】:

    • 检查以确保您没有将 public/assets 目录添加到 git。从 git 中删除目录
    • 我这样做了,但还是一样。重新启动服务器。
    • config.assets.compile 设置为 true 或 false 没有区别。
    • 您能否复制您的开发版本并将环境变量 RAILS_ENV 更改为生产以查看会发生什么。如果可行,则将该版本推送到您的生产服务器
    • 这在我的笔记本电脑上的生产模式下工作,但在服务器上却不行。
    【解决方案2】:

    我在我的 nginx.conf 中不知何故丢失了服务器下的根目录。

    【讨论】:

      【解决方案3】:

      确保在 config/environments/production.rb 中有...

      config.serve_static_assets = true
      

      【讨论】:

        猜你喜欢
        • 2015-02-06
        • 2014-05-14
        • 2013-04-09
        • 1970-01-01
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多