gpt4 book ai didi

ruby - 如何使用 Sinatra 指定自定义 Sass 目录

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:15 26 4
gpt4 key购买 nike

我不想从默认的“views”目录提供我的 Sass 文件,而是想将其更改为 /assets/sass

以下尝试在我的应用程序的主要 ruby​​ 根文件中:

尝试 1:

set :sass, Proc.new { File.join(root, "assets/sass") }

get '/stylesheet.css' do
sass :core
end

有了这个我得到了以下错误:

 myapp.rb:17 NoMethodError: undefined method `merge' for "/Users/x/x/x/mysinatraapp/assets/sass":String

尝试 2:

get '/stylesheet.css' do
sass :'/assets/sass/core'
end

尝试 3:

get '/stylesheet.css' do
sass :'/assets/sass/core'
end

两者都返回以下错误:

Errno::ENOENT: No such file or directory - ./views/assets/sass/core.sass

尝试 4:

get '/stylesheet.css' do
sass :'../assets/sass/core'
end

这行得通!但是,必须有类似 set :sass, Proc.new { File.join(root, "assets/sass") } 的内容为我设置了吗?

最佳答案

设置模板目录,然后手动渲染 Sass::Engine。

require 'sinatra'
require 'sass'

SASS_DIR = File.expand_path("../stylesheets", __FILE__)

get "/" do
erb :index
end

get "/stylesheets/:stylesheet.css" do |stylesheet|
content_type "text/css"
template = File.read(File.join(SASS_DIR, "#{stylesheet}.sass"))
Sass::Engine.new(template).render
end

关于ruby - 如何使用 Sinatra 指定自定义 Sass 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com