gpt4 book ai didi

css - compass 不同的 css 输出路径和 url 助手

转载 作者:行者123 更新时间:2023-11-28 12:45:13 25 4
gpt4 key购买 nike

我在 compass 元素中遇到了不同的 .css 输出路径(到特定文件)的问题。

假设我有这样的目录树:

 /
..Fonts
..Folder
..Images
..Sass
.._mixins.scss
..[other_stuff]
..Styles
..config.rb

这是我的config.rb:

http_path = "/"
css_dir = "Styles"
sass_dir = "Sass"
images_dir = "Images"
javascripts_dir = "Scripts"
fonts_dir = "Fonts"

output_style = :nested
relative_assets = true
color_output = false

目标

我需要在“文件夹”目录中使用 sass,我的意思是必须将一些 example.scss 文件编译成“文件夹”中的 example.css。但是,我必须将 compass 与相对 url 帮助器和一些在“Sasss/_mixins.scss”文件中定义的 mixins 一起使用。

问题

问题是,我无法为 example.scss 指定不同的输出路径,因为 scss 的输出路径在 config.rb 中指定(Styles ),对吧?好的,所以我尝试将 ruby​​ 代码添加到 config.rb 以便在将 example.css 从“样式”目录编译到“文件夹”目录后将其移动,如下所示:

require 'fileutils'
on_stylesheet_saved do |file|
if File.exists?(file) && File.basename(file) == "example.css"
puts "Moving: #{file}"
FileUtils.mv(file, File.dirname(file) + "/../Folder/" + File.basename(file))
end
end

但是,现在 relative image-url() 不能正常工作,因为它是在“Styles”目录中编译的,因此 url 是相对于这个目录而不是“文件夹”目录的。

解决方案?

所以我的问题是:实现此目标的最佳方法或技巧是什么?

最佳答案

唯一优雅的解决方案是将您的 Galleria 子元素移动到一个单独的元素中。您实际上有两个元素,为什么要将它们作为一个元素来管理?相反,将它们分开并在部署期间将它们放在一起。

或者,从子元素中创建一个 Compass 扩展(如果它的结构和您在其中所做的更改数量允许这样做)并通过导入(直接或通过混合)将必要的东西注入(inject)到您的主元素中。

一个肮脏的解决方案是使用符号链接(symbolic link):

cd Styles
ln -s ../Folder Folder

然后创建Sass/Folder/foo.sass

但这会使 compass compile 变得疯狂并每次都重新创建整个元素(而不是只覆盖修改过的文件)。

您也可以尝试创建相反方向的符号链接(symbolic link),但您必须确保您的网络服务器allows following符号链接(symbolic link)

关于css - compass 不同的 css 输出路径和 url 助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17408504/

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