【问题标题】:CSS loading locally but not in Heroku for a rails app在本地加载 CSS,但不在 Heroku 中加载 Rails 应用程序
【发布时间】:2012-09-25 00:47:47
【问题描述】:

我正在关注 Rails 启动前注册教程。 Bootstrap 在 heroku 上运行良好,但后来我修改了 bootstrap_and_override 文件以包含一个徽标。在本地启动 Rails 服务器并查看时,样式与我预期的一样,引导程序和新的标头徽标出现。

像以前一样,我运行了 rake assets:precompile 并推送到 git - 遵循本教程 http://railsapps.github.com/rails-heroku-tutorial.html 在 heroku 上显示 css 之前工作。 html 正在显示,但似乎缺少 css 和 bootstrap。

有人有什么想法吗?

【问题讨论】:

  • 请选择最适合您的答案。谢谢。

标签: css ruby-on-rails heroku twitter-bootstrap


【解决方案1】:

我刚刚在一个应用程序中遇到了类似的问题。查看THIS 帖子...

【讨论】:

    【解决方案2】:

    在尝试了 stackoverflow 可能提出的所有建议后,我想通了。我只是检查了 git 状态,看到我有一堆未提交的文件(以为这会被 git push heroku master 拾取),然后添加、提交并推送到 git。然后我重新开始,运行捆绑安装,预编译资产并部署到 heroku,它正在工作。

    【讨论】:

    • 我觉得自己像个白痴,但感谢您的帮助。解决了一切
    【解决方案3】:

    有同样的问题,我不知道它是否会在未来对其他人有所帮助,但我在“git push heroku master”推送中得到了这个:

    警告:

        Include "rails_12factor" gem to enable all platform features
    

    更新了我的 gemfile,

        *group :production, :staging do
          gem 'pg'
          gem 'rails_12factor'
        end*
    

    再次运行它,令我高兴的是它安装了这些:

        Installing rails_serve_static_assets (0.0.1)
               Installing rails_stdout_logging (0.0.1)
               Installing rails_12factor (0.0.2)
    

    之后网站运行完美。希望对某人有所帮助,我是新手。

    【讨论】:

    【解决方案4】:

    在本地代码上运行 bundle exec rake assets:precompile

    提交更改并部署到heroku

    【讨论】:

    • 这成功了!看起来它错过了 public/assets/ 中的一些文件
    • 也为我工作!感谢您发布此快速解决方案。
    【解决方案5】:

    检查 /config/environments/production.rb 中是否将这些设置为 true

    config.cache_classes = true config.serve_static_assets = true config.assets.compile = true config.assets.digest = true

    git add、git commit 并推送到 heroku。

    【讨论】:

    • 谢谢!我是 Rails 新手,它的作用就像是一种魅力!
    【解决方案6】:

    如果您使用 sass...在遇到所有其他麻烦之前...请确保您没有在资产文件夹中混合 .css 和 .scss 文件。
    Heroku 在编译资产时似乎很难将两者混合在一起。我无法解释为什么它是一个准确的解释......但是,根据我自己的经验,我需要做的就是解决这个问题,只需将任何 .css 文件重命名为 .scss。

    【讨论】:

    • 我遇到了 .css 无法正常工作的问题,但我设置了 config.assets.compile = true 并且它成功了。默认情况下,rails 5 设置为 false
    • 我在使用 padrino 时遇到了问题,normalize.min.css 没有出现在 heroku 上。我在html中链接到它。我最终重命名为 normalize.min.scss 并将其导入到我的 application.scss 文件中,它神奇地起作用了!
    【解决方案7】:

    我不得不跑heroku run rake css:rebuild

    【讨论】:

      【解决方案8】:

      我在 rails4 中遇到了同样的问题,通过添加解决了 一种。 gem 'rails_12factor' 湾。 bundle exec rake assets:precompile

      【讨论】:

        【解决方案9】:

        在生产环境中加载资产:

        How to load assets in production rails

        注意: 按照上面的链接后

        rm -rf tmp/*
        rm -rf public/assets/*
        RAILS_ENV='production' rake assets:precompile
        

        然后重启你的服务器

        【讨论】:

          【解决方案10】:

          当您克隆应用并将 CDN 用于您的资产时,也会发生此问题。

          如果您的 Heroku 应用是临时站点,请在 production.rb 中注释掉 config.action_controller.asset_host

          【讨论】:

            【解决方案11】:

            这是一个长镜头,但如果您使用的是 Chrome,请尝试按 Ctrl+Shift+R 将页面重新加载为 Chrome有时可以缓存旧的 CSS 设置。

            【讨论】:

            • 这间接帮助了我——我在与 chrome(我的主要开发浏览器)不同的浏览器上测试了 localhost:3000,结果发现它在开发中也不起作用,只是被 Chrome 缓存. (但是 ctrl+shift+R 对我没有任何改变...)
            猜你喜欢
            • 2014-01-14
            • 1970-01-01
            • 1970-01-01
            • 2019-05-12
            • 2016-10-28
            • 2019-04-16
            • 2013-08-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多