4

我正在玩 Padrino,目前正在尝试一个非常小的站点,没有 DB,app/ 目录下只有几个 HAML 和 SASS 文件。

我注意到,每次我渲染一个链接到 .sass 文件中定义的样式表的页面时,它都会将样式表编译为 .css 并将其存储在 public/ 下。

这一切都很好,但我也有一些静态资产存储在 public/ 中,包括图像和其他一些手写的 .css 文件。

这意味着我的 public/ 目录变成了我放在那里的东西和 Padrino 编译的东西的混合。因此,查看那里会显示一堆 .css 文件,其中一些是已编译的 .sass 文件,其中一些是我实际的主要静态资产。这令人困惑。

有没有办法可以阻止 Padrino(或 Sinatra,或 Rack,或其他正在做的事情)在开发过程中保存这些编译文件,并保持我的公共/干净?

或者,有人可以解释为什么我要求的是一个坏主意/设计/我应该学会爱它吗?:-)

谢谢。

4

2 回答 2

0

使用 padrino-sprockets gems 我还想将默认的 /public/stylesheets 目录更改为 /assets/stylesheets sprockets 拾取它们的位置。我发现使用 -c sass 选项生成的我的 padrino 项目有一个 /lib/sass_plugin.rb 文件,其中包含以下内容:

# Enables support for SASS template reloading for rack.
# Store SASS files by default within 'app/stylesheets/sass'
# See http://nex-3.com/posts/88-sass-supports-rack for more details.

module SassInitializer
  def self.registered(app)
    require 'sass/plugin/rack'
    Sass::Plugin.options[:template_location] = File.join(Padrino.root, "app/stylesheets")
    Sass::Plugin.options[:css_location] = File.join(Padrino.root, "public/stylesheets")
    app.use Sass::Plugin::Rack
  end
end 

编辑 :css_location 路径并重新启动 Padrino 就成功了!

于 2013-04-16T06:38:20.513 回答
0

我不知道如何为 Padrino 设置 SASS 设置,我看了看也找不到任何有用的东西。我也会对以这种方式运行它感到有点紧张,它很容易让人感到困惑和无益,如果资产名称发生冲突怎么办?

您可以做的不是通过 Padrino 添加 SASS,然后通过--watch交换机或通过类似Guard之类的东西自己运行它。这样,您还可以在公共目录(images/css/js 等)中指定不同的子文件夹,这就是我所做的(尽管这确实意味着您需要记住在描述链接时将子文件夹添加为路径的一部分)。该应用程序甚至不需要知道您正在使用 SASS,并且预编译,当它如此简单时,肯定比您目前拥有的那种按需编译(IMO)更好。

您可以尝试通过Padrino 邮件列表获取有关设置的帮助。

于 2013-02-12T06:31:04.553 回答