【发布时间】:2016-06-25 11:55:40
【问题描述】:
我为 Prestashop 购买了一个主题。 现在我需要自定义一些 CSS 样式。 自然我使用 compass 编译 css 文件,并且主题已经有一个 sass 文件夹。 当我从 root/themes/my-theme 启动“compass watch”时,所有 css 文件都被删除并使用 sass 主题文件夹中的 scss 文件重新编译。
结果是所有样式似乎都重置为默认的 prestashop 主题 default-bootstrap。
这是主题文件夹中的 config.rb:
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "css"enter code here
sass_dir = "sass"
images_dir = "img"
javascripts_dir = "js"
fonts_dir = "fonts"
output_style = :nested
environment = :development
# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true
# To disable debugging comments that display the original location of your selectors. Uncomment:
line_comments = false
color_output = false
sourcemap = true
# If you prefer the indented syntax, you might want to regenerate this
# project again passing --syntax sass, or you can uncomment this:
# preferred_syntax = :sass
# and then run:
# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass
我找不到不覆盖 css 主题文件的方法。
【问题讨论】:
-
你要么修改源代码(坏主意,如果你想稍后更新主题并且仍然有你的自定义),或者(1)使用
@include包含你自己的CSS覆盖,或者( 2) 在加载父主题 CSS 后,将自定义 CSS 覆盖作为单独的文件引用到主题中。 -
好的,但是如果我启动指南针手表,目前没有任何类型的自定义,样式将被重置。我不明白为什么。
-
Compass/Sass 只会根据您提供的 Sass 文件生成文件。这里没有什么神秘之处。
-
当然。 Compass 清理目标目录,然后将新文件写入其中。会是什么问题?无论如何,您的文件应该驻留在源目录中,而不是在目标目录中。后者仅适用于部署休息的生成/处理文件。
-
好吧,我看起来您的
.scss与主题的.css文件不对应。这里不要惊讶,主题作者可能分叉了默认血红素,但没有使用.scss文件,他只是编辑了.css文件。我遇到了过时的.scss文件的主题,这些文件将部分编译为当前的.css。
标签: css sass prestashop compass