Ruby on Rails安装Bootstrap后静态页面HTML内容无法显示求助
解决Rails静态页面内容不显示的问题
嘿,我来帮你搞定这个问题!你遇到的静态页面内容不显示的情况,主要是两个关键的小错误导致的,咱们一步步来修正:
1. 布局文件没给视图留“渲染位置”
你的application.html.erb作为全局布局,漏掉了Rails最核心的<%= yield %>标记!这个标记的作用就是告诉Rails:“把当前访问页面的视图内容插到这里”。没有它的话,Rails根本不知道该把你的静态页面内容放在哪里,所以只会显示布局里的头部导航。
另外我还发现你header标签里有个小语法错误:id: "nav"是Ruby的写法,在HTML标签里应该写成id="nav",不然浏览器解析会出问题。
修正后的application.html.erb代码:
<!DOCTYPE html> <html> <head> <Title>Real Life Magic Make-Believe</Title> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> </head> <body> <header class="navbar navbar-fixed-top navbar-inverse" id="nav"> <div class="container"> <%= link_to "REAL LIFE MAGIC MAKE-BELIEVE", root_path, id: "logo" %> <nav> <ul class="nav navbar-nav navbar-right"> <li><%= link_to "Home", root_path, id: "l1" %></li> <li><%= link_to "About", about_path, id: "l1"%></li> <li><%= link_to "Contact Us", contact_path, id: "l1"%></li> </ul> </nav> </div> </header> <%= yield %> <!-- 新增这行,视图内容会被插到这里 --> </body> </html>
2. 静态页面视图的结构太“冗余”
你的静态页面里写了<!DOCTYPE html>和<body>标签,但这些内容已经在application.html.erb布局里存在了!重复写这些标签会让HTML结构混乱,浏览器根本没法正确渲染你的内容。
修正后的静态页面代码(比如home.html.erb):
<div class="center jumbotron"> <h1>REAL LIFE MAGIC MAKE-BELIEVE</h1> <p> Welcome to the home page </p> </div>
只需要保留你想展示的核心内容就行,Rails会自动把这部分内容插入到布局的<%= yield %>位置。
最后做个小验证
- 保存好修改后的布局和视图文件
- 重启你的Rails服务器(确保所有变更都生效)
- 打开浏览器访问首页,这时候应该就能看到头部导航加上静态页面的内容啦!
内容的提问来源于stack exchange,提问作者ben
相关产品推荐
相关产品推荐

