2012-01-29 61 views
13

正如您在下面的图片中看到的,我的本地主机网站上的css在顶部的间隔比在heroku上要好得多。CSS在heroku上看起来不一样

有没有人有过这种类型的问题。你可以看到最好在此页面http://pltcpal.herokuapp.com/forums/

我使用Twitter的引导,其中建议如果使用顶部导航栏添加

`padding-top: 40px;` 

身体上。不知怎的,它不工作...

heroku

local host

+0

可能重复? http://stackoverflow.com/questions/tagged/css+heroku?sort=votes&pagesize=50 – 2012-01-29 20:57:00

+0

@IOXenus这是一个完全不同的问题 – Leahcim 2012-01-29 20:58:12

+1

也许是由于你没有使用CSS Reset。如果你添加40px的50px填充,它很好。 – Jawad 2012-01-29 20:59:05

回答

18

问题与处理Heroku上的资产管道有关。有几种方式可以解决这个问题,请参阅http://devcenter.heroku.com/articles/rails31_heroku_cedar

我在我的应用程序中通过预先编译我的机器上的资产并将它们推送到Heroku来解决了问题。

预编译的资产:

RAILS_ENV=production bundle exec rake assets:precompile 

添加/更改提交到Git资源库:

git add public/assets 
git commit -m "vendor compiled assets" 

要我先其测试的本地分支整个事情在我的机器上的安全我使用以下命令(Heroku通常忽略除主分支以外的所有分支)推送到Heroku:

git push -f heroku heroku-assetpipeline:master 
+0

成就了我的一天。谢谢。 – 2013-11-16 21:09:41

1

我有同样的问题。 当我比较开发和生产代码时,发生在开发机器上的bootstrap样式表和JavaScript文件都被加载,因此在生产站点(Heroku)上只有一个应用程序-XYZ.css和一个应用程序-XYZ .js文件。

我不确定这是否会成为资产管道的问题。

可能有人可能会详细说明需要做什么来(预)编译资产管道,以便在Heroku上部署成功。

10

FWIW,我有这个相同的问题,并检查了我能想到的一切,以及上面的那些。事实证明,我必须在我的浏览器中放大本地主机时,我的标准缩放我的生产网址。

这与在两页上重置浏览器中的缩放一样简单。希望这可以帮助其他人解决同样的问题。

+0

哈哈哈哈。相同! :) – 2017-12-06 14:00:21

0

是否有可能在某些时候在本地预编译了您的资产?要强制heroku在slug编译期间编译您的资源,您可以将public/assets/manifest.yml重命名为public/assets/manifest.yml.bak,提交您的源代码并推送到heroku。

Heroku假定您在看到manifest.yml文件时在本地编译了您的资产。

0

我有这个相同的问题,并遵循包括Heroku自己的文档在内的几个不同页面的说明。我在这里贴出来帮助下一个人,因为可能是由于Rails 4,Heroku或Github的变化,但上述方向对我来说根本不起作用。然而,我确实得到它的工作,这是如何。

是的,你可能应该使用RAILS_ENV=production bundle exec rake assets:precompile预编译你的资产,但在此之后,进入你的'公共/资产'文件夹并复制“所有”'.css','css.gz','.json','.yml' ,'.js'文件以'application'或'manifest'开头。将它们移动到应用程序目录之外的文件夹中。这样做只是为了防止出现任何问题。确认所有这些文件都从应用程序的“public/assets /”文件夹中删除。接下来重新启动您的本地Rails服务器并验证您的应用仍然按照您的意图运行。然后转到您的Github帐户并进入存储库的“public/assets /”目录,并删除您刚刚在本地执行的所有相同文件。然后在本地添加/提交,然后推送到git,然后到heroku,并且walla完成了它应该工作。

它的基本原理,我假设,是因为当你推到Heroku时,它检查你的仓库中的编译资产,因此,即使我本地预编译过,它仍然从之前的提交中提取一些资产配置。通过删除这些文件,Heroku必须在推送过程中编译它们。有一件事我没有尝试,可能会工作只是切换到另一个分支并删除这些文件,并将该分支部署到Heroku,所以你可能想先尝试,但这是对我来说。

另外一个注意事项是,将文件重命名为.bak或.old Heroku仍将它们视为常客,并将它们显示为原始文件不能正常显示。

相关问题