我正在开发一个基本的Rails应用程序(Rails版本4.1),并且我想在其中包含一个静态页面。我有以下目录结构的静态页面:

|
|-index.html
|-css文件夹
|-(某些CSS文件)
|-js文件夹
|-(一些js文件)
|-图片文件夹
|-(一些图像)

如何在应用程序中包含它?我打算把它设为我的主页。

我尝试通过在“app / views / layout”目录中包含html文件来尝试在 Controller 中使用“layout”关键字。但是,我最多只能渲染'index.html'文件,但是它缺少任何样式,即被渲染为纯文本。
我已经可以通过使用HighVoltage gem获得相同的结果。

最佳答案

页面

当您提到“静态”页面时-所有页面在Rails中都是静态的

Rails只是使用数据库中的数据来呈现HTML。与PHP(许多开发人员可能会赞赏)一样,Rails是一个处理器,可让您用所需的数据填充view

这意味着,如果要创建“静态”页面,则只需要从数据库中提取任何数据即可:

#config/routes.eb
root: "application#home"

#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
   def home
   end
end

这将使您能够加载以下 View :
#app/views/application/home.html.erb
Put stuff here

Assets

现在,比较棘手的部分是为该 View 包括正确的 Assets 。

您提到您有自己的directory结构。现在让我告诉您,通过 Assets 管道创建和提供 Assets 将为您提供更好的服务。

就是这样:
#app/views/layouts/application.html.erb
<head>
  ...
  <% if controller_name == "application" && action_name == "home" %>
     <%= stylesheet_link_tag "welcome" %>
     <%= javascript_include_tag "welcome" %>
  <% end %>
</head>

这将使您能够调用以下命令:
#app/assets/stylesheets/welcome.css
...

#app/assets/javascripts/welcome.js
...

最后,如果您随后将“welcome”文件添加到 Assets 预编译列表中,那么它应该对您有用:
#config/application.rb
Rails.application.config.assets.precompile += ['welcome.js', 'welcome.css']

09-30 16:39
查看更多