首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-流水线根本不工作

django-流水线根本不工作
EN

Stack Overflow用户
提问于 2014-08-23 07:34:27
回答 2查看 2.1K关注 0票数 4

我为此挣扎了几个小时,请帮我解决这个问题,否则就杀了我=(

我得到了404的所有4个文件在视图中。任何地方都没有编译过的文件。

virtualenv中的Python 3.4.0,Django 1.7 RC3。

顺便说一句:

代码语言:javascript
复制
python manage.py collectstatic

将所有内容从资源复制到assets_compressed,并在其中添加管理样式。但最后有一个错误:

代码语言:javascript
复制
ValueError: The joined path (/) is located outside of the base path component (/home/val/Programming/Django/nedviga/nedviga/assets)

设置:

代码语言:javascript
复制
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pipeline',
)

..。

代码语言:javascript
复制
STATIC_URL = '/assets/'

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

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

..。

代码语言:javascript
复制
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'
    }
}

目录结构:

代码语言:javascript
复制
project_name

    assets
        libs
            ...
        main.js
        main.less

    assets_compressed
        *empty*

    project_name
    manage.py

查看:

代码语言:javascript
复制
<!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>
EN

回答 2

Stack Overflow用户

发布于 2015-08-08 20:25:20

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

例如:'source_filenames': ( 'main.less' , ),

'source_filenames': ( 'main.less' ),

票数 2
EN

Stack Overflow用户

发布于 2015-03-25 01:37:15

我不知道它是否仍然有用,但你只是忘记了在你的STATICFILES_FINDERS中添加'pipeline.finders.PipelineFinder‘:

代码语言:javascript
复制
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25456970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档