python - django 管道根本不工作

标签 python django python-3.x django-pipeline django-1.7

我为此奋斗了几个小时,求求你,帮我解决这个问题,否则杀了我 =(

我看到所有 4 个文件都收到 404。任何地方都没有编译文件。

virtualenv 中的 Python 3.4.0,Django 1.7 RC3。

顺便说一句:

python manage.py collectstatic

复制从 assets 到 assets_compressed 的所有内容,并在那里添加管理样式。但是最后出现错误:

ValueError: The joined path (/) is located outside of the base path component (/home/val/Programming/Django/nedviga/nedviga/assets)

设置:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pipeline',
)

...

STATIC_URL = '/assets/'

STATIC_ROOT = os.path.join(BASE_DIR, 'assets_compressed')

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'assets'),
)

...

PIPELINE_ENABLED = True

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'

PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'

PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'

PIPELINE_COMPILERS = (
    'pipeline.compilers.less.LessCompiler'
)

PIPELINE_CSS = {
    'libs': {
        'source_filenames': (
            'libs/bootstrap/css/bootstrap.min.css'
        ),
        'output_filename': 'css/libs.css'
    },
    'site': {
        'source_filenames': (
            'main.less'
        ),
        'output_filename': 'css/main.css'
    }
}

PIPELINE_JS = {
    'libs': {
        'source_filenames': (
            'libs/jquery/jquery-2.1.1.min.js'
            'libs/bootstrap/js/bootstrap.min.js'
        ),
        'output_filename': 'js/libs.js'
    },
    'site': {
        'source_filenames': (
            'main.js'
        ),
        'output_filename': 'js/main.js'
    }
}

目录结构:

project_name

    assets
        libs
            ...
        main.js
        main.less

    assets_compressed
        *empty*

    project_name
    manage.py

查看:

<!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title>AAARGH</title>

    {% load compressed %}
    {% compressed_css 'libs' %}
    {% compressed_css 'site' %}
</head>

<body>

    {% compressed_js 'libs' %}
    {% compressed_js 'site' %}
</body>

</html>

最佳答案

您需要在每个 source_filenames 后加上逗号。即使它只有 1 个来源。

例如: '源文件名':( 'main.less' , ),

不是

'源文件名':( 'main.less' ),

关于python - django 管道根本不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25456970/

相关文章:

python - Django 和 Oracle DB 失去联系

python - 如何在Python Django中从数据库表中获取相关类别产品?

python - 有什么方法可以知道参数的值是默认值还是用户指定的?

Python/Scikit-learn/regressions - 从 pandas Dataframes 到 Scikit 预测

python - mongo 查询不返回结果

python - SVM sklearn verbose 仅​​显示点

python - 如何从命令行激活 Anaconda 环境?

python - 检查列表中是否有特定值不断出现在 Python 中

Django 应用仅适用于 Debug=True Heroku

python - 如何将树类对象结构序列化为JSON文件格式?