在本地加载 CSS,但不在 Heroku 中加载 Rails 应用程序

Posted

技术标签:

【中文标题】在本地加载 CSS,但不在 Heroku 中加载 Rails 应用程序【英文标题】:CSS loading locally but not in Heroku for a rails app 【发布时间】: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。

有人有什么想法吗?

【问题讨论】:

请选择最适合您的答案。谢谢。 【参考方案1】:

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

【讨论】:

【参考方案2】:

在尝试了 *** 可能提出的所有建议后,我想通了。我只是检查了 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)

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

【讨论】:

查看关于rails_12factor的heroku文档【参考方案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 对我没有任何改变...)

以上是关于在本地加载 CSS,但不在 Heroku 中加载 Rails 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

DJANGO:静态文件未在实时服务器中加载(但在本地加载)?

夹层 - 无法在 Heroku 中加载 css 和 js

Heroku 无法加载我的 css 文件,因为它是 mimetype

无法在heroku中加载favicon.ico for rest api

iOS Web-App从Chrome中的数据库加载,但不在Safari中加载

无法在本地的 Sharepoint 2019 中加载或应用外部 CSS 文件