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

基本网站在调试html/css时看起来很奇怪,html,css,ruby-on-rails,twitter-bootstrap,heroku,Html,Css,Ruby On Rails,Twitter Bootstrap,Heroku,我正在尝试复制一个非常基本的类似于Twitter的Rails应用程序,这是我在一节课上做的。我刚刚添加了Twitter引导,但是如果我在本地运行网站,顶部的导航按钮就会消失,如果我部署,样式就会完全消失。无论我去哪里看,我都找不到它和我以前写的有什么不同,也找不到当前代码哪里出错了 与一年前相比,我使用了最新的rails和bootstrap 我期望看到的是:.com/ 我在本地看到的:如果你在本地运行这个网站 我在heroku.com上看到的/ 我当前的代码可以在这里找到:预编译 问题的核心

我正在尝试复制一个非常基本的类似于Twitter的Rails应用程序,这是我在一节课上做的。我刚刚添加了Twitter引导,但是如果我在本地运行网站,顶部的导航按钮就会消失,如果我部署,样式就会完全消失。无论我去哪里看,我都找不到它和我以前写的有什么不同,也找不到当前代码哪里出错了

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

  • 我期望看到的是:.com/
  • 我在本地看到的:如果你在本地运行这个网站
  • 我在heroku.com上看到的/

我当前的代码可以在这里找到:

预编译

问题的核心可能是Rails流程,这是新Heroku开发人员的一个主要问题:

在生产环境中,链轮使用指纹方案 如上所述。默认情况下,Rails假定资产已预编译 并将作为静态资产由web服务器提供

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

正如你的Rails应用程序所想的那样,通过使用Heroku,它正在“生产”模式下运行。虽然从编程的角度来看,这并不意味着有什么不同,但它确实会对您的环境产生影响;具体来说,您的资产需要预编译,您的流需要经过战斗测试(没有bug)

底线是您的
生产
资产没有加载,因为它们没有正确预编译(如果有的话)。因此,您的第一个呼叫端口将使用以下端口:

$ rake assets:precompile RAILS_ENV=production
$ git add .
$ git commit -a -m "Precompiled"
$ git push heroku master
如果您在本地执行此操作,那么在部署到Heroku时,您将明确知道这些资产是预编译的,这将从您的系统的潜在bug中消除此问题

从缺乏资产可以看出,情况进一步如此:


资产

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

您需要研究Rails的指令——基本上是如何将所有文件连接到单个“应用程序”文件中的——然后将其他“依赖”文件拉入系统

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

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

看看开发人员控制台,找不到任何css/js。另外,下次你问问题时,请确保你确实有问题,而不是“为我调试”。再次感谢你的详细回答。事实证明,最大的问题是我在BootStrap3API上运行了bootstrap2代码。对我来说,一点一点地修改代码是相当痛苦的。但最终网站看起来还是可以使用的。不过,我仍然需要与heroku一起研究部署问题