装载但未在轨道中应用的资产4

时间:2015-12-03 14:33:54

标签: css ruby-on-rails ruby-on-rails-4 asset-pipeline slim-lang

我刚刚创建了一个测试项目并且正在阅读资产管道。到目前为止,资产正在加载但未应用,就好像我转到localhost:3000/assets/application.css我看到了我写的风格,但我没有看到规则适用于DOM。

Rails版本:4.2.1 Ruby版本:2.2.0

结构如下:

app
--- assets
------ images
------ javascripts
------ stylesheets
------------ application.css
------------ todos.css

application.css的内容如下:

/*
*= require_tree .
*= require_self
*/

以下application.js的内容:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

rails APP非常简单,因为它只是一个模型(todo.rb),该模型的控制器(todos_controller.rb)具有以下内容:

class TodosController < ActionController::Base
  def index
    @todos = Todo.all
  end
end

非常简单,对于视图我使用具有以下层次结构的Slim模板:

app
--- views
------ todos
--------- index.slim

application.html.erb的内容如下:

<!DOCTYPE html>
<html>
<head>
  <title>Test</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

对于观点:

.todos
  - @todos.each do |todo|
    .title = todo.title
    .content = todo.content

我是否缺少资产管道?提前谢谢。

2 个答案:

答案 0 :(得分:4)

index.slim重命名为index.html.slim

P.S。约定优于配置

答案 1 :(得分:2)

TodosController必须从ApplicationController继承,而不是从ActionController::Base继承

class TodosController < ApplicationController
  def index
    @todos = Todo.all
  end
end