基本网站看起来很奇怪调试html / css

时间:2014-09-18 03:35:29

标签: html css ruby-on-rails twitter-bootstrap heroku

我正在尝试重现一个非常基本的Twitter,比如Rails应用程序,我之前在课堂上做过。我刚刚添加了Twitter引导程序,但如果我在本地运行网站,则顶部导航按钮会消失,如果我部署,样式将完全消失。无论我在哪里,我都找不到它与我之前写的或者当前代码出错的地方有什么不同。

与一年前相比,我使用了最新的rails和bootstrap。

我目前的代码可以在这里找到:https://github.com/lukexuanliu/CornellBlog

1 个答案:

答案 0 :(得分:0)

<强>预编译

问题的核心很可能是Rails precompilation进程,这是新Heroku开发者的一个主要问题:

  

在生产环境中,Sprockets使用指纹识别方案   概述如上。默认情况下,Rails假定资产已经过预编译   并将由您的网络服务器作为静态资产提供。

     

在预编译阶段,从内容生成MD5   已编译的文件,并按原样插入到文件名中   写到光盘。这些指纹名称由Rails使用   帮助者代替清单名称。

正如您的Rails应用程序所认为的那样,通过使用Heroku,它可以在&#34;生产&#34;模式。虽然以编程方式,这并不意味着任何不同,它 会对您的环境产生影响;特别是你的资产需要预先编译,你的流量需要经过战斗测试(没有错误)

底线是您的production资产未加载,因为它们尚未正确预编译(如果有的话)。因此,您的第一个停靠点将使用以下内容:

$ rake assets:precompile RAILS_ENV=production
$ git add .
$ git commit -a -m "Precompiled"
$ git push heroku master

如果你在本地执行此操作,那么当你部署到Heroku时,你肯定知道资产是预先编译的,这将消除你的系统潜在错误中的这个问题。

从缺乏资产可以看出情况进一步证明了这一点:

enter image description here


<强>资产

关于您的应用程序在开发过程中的行为方式,我建议您要么没有对bootstrap主题的正确引用,要么存在某种阻止其加载的问题。

您想要查看Rails的manifest指令 - 基本上您是如何将您拥有的任何文件连接到单个&#34;应用程序&#34;文件 - 然后将拉动另一个&#34;依赖&#34;文件进入系统。

简而言之,您的application.css文件应该如下所示:

#app/assets/stylesheets/application.css
/*
 *= require_self
 *= require bootstrap
 *= require tree .
*/