如何在Rails应用程序中包含带有自定义css和js文件的静态页面
How to include a static page with custom css and js files in a Rails application
我正在开发一个基本的Rails应用程序(Rails 4.1版),我想在其中包含一个静态页面
||-index.html|-css文件夹|--(一些css文件)|-js文件夹|--(一些js文件)|-图像文件夹|--(一些图像)
如何将其包含在我的申请中?顺便说一句,我打算把它作为我的主页。
我尝试在控制器中使用"layout"关键字,方法是将html文件包含在"app/views/layout"目录中。然而,我最多只能呈现"index.html"文件,但它缺少任何样式,即呈现为纯文本。我已经能够通过使用高压宝石获得相同的结果。
页面
当你提到一个"静态"页面时,所有页面都是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
这将使您能够加载以下视图:
#app/views/application/home.html.erb
Put stuff here
资产
现在,稍微棘手的部分是为该视图包含正确的资产。
你提到你有自己的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>
这将使您能够拨打以下电话:
#app/assets/stylesheets/welcome.css
...
#app/assets/javascripts/welcome.js
...
最后,如果您将"欢迎"文件添加到资产预编译列表中,它应该对您有效:
#config/application.rb
Rails.application.config.assets.precompile += ['welcome.js', 'welcome.css']
由于您的主页有自定义样式和js,因此您需要在任何其他视图中对其进行更多处理为您的主页创建一个控制器,称之为pages_controller。创建一个自定义操作,比如home,为该操作制定路线,然后将您的html放入该操作视图
按照以下步骤使其工作:
- 创建控制器:
轨道g控制器页面
- 在页面中创建操作s_controller.rb
def home;结束
- 为您的行动创建路线
root:to=>'pages#home'
默认情况下,这将使用application.html.erb作为布局,在application.html.erb中有这行
<%= stylesheet_link_tag "application", media: "all" %> #this by default load all the css from assets/stylesheets/application.css so you can require your css file inside it
- 从文本文件js中读取列表
- 当我用ctrl+p搜索时,为什么要在谷歌chrome上使用inspect来调试缺少显示文件js
- 获取用于外部JavaScript文件(.js)的代码提示
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 在 Node 中包含 javascript 文件.js无需 require('.') ing
- 如何使用jquery显示多个文件.多文件.js
- 使用 PDF 打开 PDF 文件.js而不将文件作为查询字符串传递
- 转换颜色十六进制值以用于三个 JSON 文件.js
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 如何在 Gulp 任务中间添加 CSS 文件.js
- 如何从Dropzone上传和删除文件.js
- 如何在视频中添加视频文件.js 4.2.1.
- 从快速节点下载文件.js具有 JWT 授权
- 访问 JavaScript 文件.js中的 C# 变量
- 在节点中热重载外部 js 文件.js如果文件有任何更改
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何在多文件.js中上传文件时检查文件扩展名
- 将文件.js中的var导入到模块joomla的模板中,并使用后台进行修改
- 在path项目中编写文件js脚本