【发布时间】:2015-07-28 14:43:14
【问题描述】:
我在让 libsass 编译 SASS 文件时遇到问题。我可以让它编译 SCSS 文件就好了。
我有一个 Flask 应用程序,我已经安装了 libsass,我正在使用 libsass 绑定 sass。它运行良好,但缺少一些功能——它不能编译 SASS,但它可以编译 SCSS。这是我所做的:
在我的 applicaiton.py 文件中有
from flask import Flask
import sass
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
sass.compile(dirname=('client/sass', 'client/css'), source_comments=True)
app.run()
我的两个测试文件是test_scss.scss,它有效:
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
body {
font: 100% $font-stack;
color: $primary-color;
}
还有test_sass.sass:
$font-stack: Helvetica, sans-serif
$primary-color: #333
body
font: 100% $font-stack
color: $primary-color
文档说sass.complie 可以接受 SASS 代码,但我只能让它接受 SCSS 代码。也就是说,当我运行我的应用程序时,只有 .scss 文件被编译为 CSS。我的应用程序sass.compile运行后的目录结构是:
- 客户端
- CSS
- app.css
- test_scss.css
- 库
- 萨斯
- test_sass.sass
- test_scss.scss
- CSS
- 服务器
- 模板
- application.py
有人建议我将 SASS 文件重命名为带有 .scss 扩展名的文件。喜欢test_sass.scss:'
$font-stack: Helvetica, sans-serif
$primary-color: #333
body
font: 100% $font-stack
color: $primary-color
但是,当我这样做时,我只会收到以下错误:
src/web-internal/server/applicaiton.py", line 8, in <module>
sass.compile(dirname=('client/sass', 'client/css'), source_comments=True)
File "/usr/local/lib/python3.4/site-packages/sass.py", line 516, in compile
raise CompileError(v)
sass.CompileError: b"Error: top-level variable binding must be terminated by ';'\n on line 2 of src/web-internal/server/../client/sass/test_sass.scss\n>> $primary-color: #333\n ^\n"
我想使用 SASS,但不希望满足于 SCSS。有没有人有什么建议?我觉得sass documentation 中有一些我误解的东西。
【问题讨论】:
-
你能展示一下你的应用的文件夹结构吗?
-
您的
sass、css文件夹应位于static命名文件夹中。请参阅here 一些信息。 -
谢谢@doru 但是,即使我的Flask 应用程序是使用
app = Flask(__name__,static_url_path="",static_folder=CLIENT_FOLDER)启动的,其中CLIENT_FOLDER是client文件夹(CLIENT_FOLDER=os.path.join(os.path.realpath(os.path.dirname(__file__)),"..","client")),你认为这是问题所在 -
除非你分享Minimum, Complete, and Verifiable Example,否则人们大多会猜测。
-
您提供了异常但没有回溯。您引用了包含一行代码的文件,但不共享该文件。这些是开始的好地方。
标签: python css flask sass libsass