Heroku生产不同于本地开发(Rails)

时间:2013-06-27 00:49:16

标签: heroku deployment ruby-on-rails-3.2 zurb-foundation production-environment

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

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

我将application.html.erb中的yield包装为一个名为“fixednavbar”的类的div,并编写了以下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并没有反映出这一点。老实说,我真的很难过,需要一些帮助。

3 个答案:

答案 0 :(得分:6)

在回复的用户的帮助下,我能够识别错误并搜索解决方案。我找到了HERE

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

config.assets.compile = false

并将“false”更改为true。

config.assets.compile = true

然后运行

rake assets:precompile RAILS_ENV='production'

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

heroku run rake db:migrate

部署到Heroku后,一切正常。

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

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

config.assets.initialize_on_precompile = false

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

当然,我在上述所有步骤中遇到了麻烦,还有其他一些帖子。