Django Static Precompiler没有编译文件?

时间:2017-08-12 06:52:49

标签: python django django-static-precompiler

Django static precompiler似乎不适用于scss个文件。我已经检查过我是否安装了编译器并且我的django设置如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'static_precompiler',
    'cms',
]

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'static_precompiler.finders.StaticPrecompilerFinder',
)

STATIC_URL = '/static/'
STATIC_ROOT = "static"

我在django模板中调用相同的内容如下

{% load compile_static %}
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Spacemailer</title>
    {% block seo %}
    {% endblock %}
    <link rel="stylesheet" href="{% static 'style/main.scss' | compile %}" type="text/css" media="all" />
</head>
    <body>
        {% block body %}
        {% endblock %}
    </body>
</html>

没有任何错误。输出是相同的scss文件,不进行任何编译。有人可以指出我做错了什么吗?或者一些支持编译scss以及coffee脚本

的备选方案

1 个答案:

答案 0 :(得分:0)

默认情况下,编译应在运行时为模板提供 compile的过滤器。

{% static "js/alert.es6"|compile %}

呈现

<script type="application/javascript" src="/static/COMPILED/js/alert.js"></script>

如果您使用其他存储空间并且STATIC_PRECOMPILER_DISABLE_AUTO_COMPILE Truecompilestatic之前使用collectstatic进行编译

验证Compiler configuration

STATIC_PRECOMPILER_COMPILERS = (
       ('static_precompiler.compilers.SCSS', {
        "executable": "/usr/bin/sass",
        "sourcemap_enabled": True,
        "compass_enabled": True,
        "load_paths": ["/path"],
        "precision": 8,
        "output_style": "compressed",
    }),
)