pur*_*zen 3 html javascript css layout ruby-on-rails
我正在研究一个基本的Rails应用程序(Rails版本4.1),我想在其中包含一个静态页面.我有一个具有以下目录结构的静态页面:
| | - index.html | - css文件夹| - (某些css文件)| - js文件夹| - (某些js文件)| - images文件夹| - (某些图像)
如何将其包含在我的应用程序中?我打算把它作为我的主页顺便说一下.
我已经尝试在控制器中使用'layout'关键字,将html文件包含在'app/views/layout'目录中.但是,我最多能够呈现'index.html'文件,但它错过任何样式,即呈现为纯文本.通过使用HighVoltage gem,我已经能够获得相同的结果.
页
当你提到"静态"页面时 - 所有页面在Rails中都是静态的
Rails只使用数据库中的数据呈现HTML.就像PHP(许多开发人员可以欣赏)一样,Rails是一个处理器,它允许您view使用所需的数据填充.
这意味着如果你想创建一个"静态"页面,你只需要不从db中提取任何数据:
#config/routes.eb
root: "application#home"
#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
def home
end
end
Run Code Online (Sandbox Code Playgroud)
这将使您能够加载以下视图:
#app/views/application/home.html.erb
Put stuff here
Run Code Online (Sandbox Code Playgroud)
资产
现在,稍微棘手的部分是为此视图包含正确的资产.
你提到你有自己的directory结构.现在让我告诉您,通过从资产管道创建和提供资产,您将获得更好的服务.
这是如何做:
#app/views/layouts/application.html.erb
<head>
...
<% if controller_name == "application" && action_name == "home" %>
<%= stylesheet_link_tag "welcome" %>
<%= javascript_include_tag "welcome" %>
<% end %>
</head>
Run Code Online (Sandbox Code Playgroud)
这将使您能够调用以下内容:
#app/assets/stylesheets/welcome.css
...
#app/assets/javascripts/welcome.js
...
Run Code Online (Sandbox Code Playgroud)
最后,如果您随后将"欢迎"文件添加到资产预编译列表中,它应该适合您:
#config/application.rb
Rails.application.config.assets.precompile += ['welcome.js', 'welcome.css']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |