【发布时间】:2013-05-08 21:19:43
【问题描述】:
我读过 Sinatra SASS custom directory 和 Sinatra custom SASS directory 。
但这对我不起作用。我写了这个应用程序:
require 'sinatra'
require 'sass'
require 'slim'
configure do
set :views, :scss => 'assets/css'
end
get '/css/*.css' do
scss params[:splat].first.to_sym
end
get '/' do
slim :index
end
当我运行它时,我得到一个错误:
http://localhost:3000/css/style.css
TypeError at /css/style.css
no implicit conversion of Hash into String
【问题讨论】:
-
错误来自您的 CSS/SASS 文件。它是否说明隐式转换发生在哪一行?你能显示相关的 CSS 部分吗?
-
小心 to_sym 转换。这会使您的应用程序对 dos 开放,因为无效的 css 文件请求 (404) 都会创建一个永远不会被垃圾收集的符号。在创建符号之前先检查文件。
# sass style sheet generation get '/css/:file.css' do halt 404 unless File.exist?("views/#{params[:file]}.scss") time = File.stat("views/#{params[:file]}.scss").ctime last_modified(time) scss params[:file].intern end -
抱歉,看起来很糟糕。这是正确的要点:j.mp/19r6REE
-
@ArmanH,文件 assets/css/style.sass 就是
h1 { color: #ff0000; } -
您使用的是 SCSS 而不是 SASS,它应该使用缩进而不是括号进行格式化?尝试将语法更改为正确的 SASS 以查看是否有所作为。
标签: ruby-on-rails ruby sinatra sass rack