日期:2014-05-17  浏览次数:20620 次

Heroku上Toto加载HTML页面不全问题解决办法

在HeroKu上用Toto自己搭一个轻量级的Blog真是太容易了,Disqus这种松偶合的方式都是值的学习。
可能用中文会出现一点问题:加载HTML页面时不全,也就是在浏览器上查看页面源代码,发现只有一部分,有一部分被截掉了。刚开始以为是HTML DOCTYPE的问题,但试了半天都不行。终于通过Google找到了原因:https://github.com/cloudhead/toto/issues/86
是Toto的一个Bug,简单的来说就是因为Ruby1.9和Ruby1.8对String#size的定义有变化(对于非英文来说)。解决办法有二个,一个是用修改过后的Toto,或是把在heroku上的应用Ruby版本降到1.8。

Heroku上怎么降Ruby版本呢?可以参考官方文档:http://devcenter.heroku.com/articles/stack
可以通过下面命令查看现在Ruby版本

$ heroku stack

?


下面命令可以迁移到目标版本

$ heroku stack:migrate bamboo-ree-1.8.7
?



会有下面提示,说明已经准备好迁移了,会在下次Push时生效

-----> Preparing to migrate yuanping
       bamboo-mri-1.9.2 -> bamboo-ree-1.8.7

       NOTE: You must specify ALL gems (including Rails) in manifest

       Please read the migration guide:
       http://devcenter.heroku.com/articles/bamboo

-----> Migration prepared.
       Run 'git push heroku master' to execute migration.
?



试了之后,解决了问题