6

我是编码和 Rails 的新手,我第一次遇到这个问题 - 我的应用程序的本地开发版本与生产版本有不利的不同。

我在我的 Rails 应用程序上使用 Zurb Foundation 并部署到 Heroku 以在生产中查看它。我面临的问题是在本地,我编写的用于获取导航栏和页面其余部分之间的填充的 CSS 工作正常,但是当我部署到 Heroku 时,CSS 无法正确呈现并且缺少填充。

我用我命名为“fixednavbar”的类的 div 将产量包装在 application.html.erb 中,并编写了以下 css:

.fixednavbar {
padding-top: 60px;
}

我将此 css 放在资产管道(Rails 3.2.13)中的 layouts.css.scss 文件中。application.html.erb 文件中的代码如下:

<div class="row fixednavbar">
   <%= yield %>
</div>

我已经在本地和 github 上检查了代码,以确保它们匹配并且确实如此。我采取了激进的步骤并启动了一个新存储库,然后删除了本地 git 存储库并启动了一个新存储库并将所有当前文件推送到那里(我在 github 上创建了一个新存储库,以便我以前的所有版本仍然在原始存储库中)。

完成此操作后,我创建了一个新的 Heroku 应用程序并进行了部署,但生产版本仍然没有呈现与开发版本相同的 CSS。

我完全不知道为什么当代码相同时这些版本会有所不同(除非在其他地方潜伏着一些我没想过要检查的东西)。

非常感谢任何和所有帮助。正如我所说,我对 Rails 很了解(并且大部分时间都在编码),这是我第一次遇到这样的问题。

谢谢!

更新:我一直在尝试解决这个问题。我在应用程序上做了其他工作,然后回到这个问题。我想获得生产版本以反映正在开发的内容,因此任何帮助都会令人惊叹。

进一步描述这个问题:当 CSS 尚未解决时,几乎就像我对 Heroku 的生产部署卡在旧版本的应用程序中一样。导航栏颜色停留在我将其更改为的第一种颜色上,并且不会更新为新颜色。粘性导航仍然会导致生产中出现问题,即主体部分隐藏在导航后面。

现在,在运行本地服务器的开发中,我已经解决了所有这些问题。这些变化反映在发展中,一切都如预期的那样。

更改后,我提交到 git,然后我推送到 github。推送到 github 后,我推送到 Heroku。

github 文件反映了更改,并且代码应如此。尽管如此,Heroku 并没有反映这一点。老实说,我在这里被难住了,需要一些帮助。

4

3 回答 3

6

在响应的用户的帮助下,我能够识别错误并搜索解决方案。我在这里找到了。

解决方案是查看 production.rb 文件并找到它所说的行

config.assets.compile = false

并将“假”更改为真。

config.assets.compile = true

然后运行

rake assets:precompile RAILS_ENV='production'

部署到 Heroku 后,您可能需要运行

heroku run rake db:migrate

这让一切在部署到 Heroku 时都能正常工作。

于 2013-06-27T08:25:53.467 回答
0

你是如何包含这个插件的?不要直接添加 js 和 css,而是尝试使用https://github.com/zurb/foundation-rails中的 gem并从您的应用程序中删除任何直接引用。我在使用其他插件(如 bootstrap、bxslider 等)时也遇到过类似的问题。

于 2013-06-27T07:42:45.993 回答
-1

作为一个初学者,我在同样的问题上遇到了困难。因为我使用的是 Rails 4,所以从 config/application.rb 中删除这一行的简单步骤就可以解决问题。

config.assets.initialize_on_precompile = false

https://devcenter.heroku.com/articles/rails-asset-pipeline

当然,我对上述所有步骤以及其他一些帖子中的其他步骤进行了故障排除。

于 2014-09-18T22:56:36.053 回答