3

python manage.py collectstaticを実行すると、次のようになります。

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/fceruti/Development/Arriendas.cl/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 163, in handle_noargs
    collected = self.collect()
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 119, in collect
    dry_run=self.dry_run)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/pipeline/storage.py", line 30, in post_process
    packager.pack_stylesheets(package)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/pipeline/packager.py", line 90, in pack_stylesheets
    variant=package.variant, **kwargs)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/pipeline/packager.py", line 100, in pack
    content = compress(paths, **kwargs)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/pipeline/compressors/__init__.py", line 72, in compress_css
    css = self.concatenate_and_rewrite(paths, output_filename, variant)
  File "/Users/fceruti/Development/Arriendas.cl/venv/lib/python2.7/site-packages/pipeline/compressors/__init__.py", line 135, in concatenate_and_rewrite
    content = self.read_file(path)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/pipeline/compressors/__init__.py", line 208, in read_file
    file = default_storage.open(path, 'rb')
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/django/core/files/storage.py", line 33, in open
    return self._open(name, mode)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/pipeline/storage.py", line 114, in _open
    storage = self.find_storage(name)
  File "/Users/fceruti/Development/xxxxx/venv/lib/python2.7/site-packages/pipeline/storage.py", line 111, in find_storage
    raise ValueError("The file '%s' could not be found with %r." % (name, self))
ValueError: The file 'css/960_24_col.css' could not be found with <pipeline.storage.PipelineFinderStorage object at 0x101da4d50>.

python manage.py findstatic css/960_24_col.cssを実行すると、

Found 'css/960_24_col.css' here:
  /Users/fceruti/Development/xxxxxxx/Arriendas/static/css/960_24_col.css

私の設定は次のとおりです。

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')

STATICFILES_DIRS = (
    ('css', os.path.join(STATIC_ROOT, 'css')),
    ('img', os.path.join(STATIC_ROOT, 'img')),
    ('js', os.path.join(STATIC_ROOT, 'js')),
    ('fonts', os.path.join(STATIC_ROOT, 'fonts')),
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
PIPELINE = True
PIPELINE_CSS = {
    'app': {
        'source_filenames': (
            'css/960_24_col.css',
            'css/base.scss',
        ),
        'output_filename': 'css/app.css',
        'extra_context': {
            'media': 'screen,projection',
        },
    },
}
PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yui.YUICompressor'
PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.yui.YUICompressor'
PIPELINE_YUI_CSS_ARGUMENTS = ''
PIPELINE_YUI_JS_ARGUMENTS = ''
PIPELINE_YUI_BINARY = os.path.join(PROJECT_ROOT, 'libs/yuicompressor-2.4.7/build/yuicompressor-2.4.7.jar')

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_SASS_BINARY = '/usr/bin/sass'

追加すると

PIPELINE_COMPILERS = (
    'pipeline.compilers.sass.SASSCompiler',
)

ウェブページを実行すると、次のようになります。

Exception Type: CompilerError
Exception Value:    
Unable to apply SASSCompiler compiler

私は何を間違っていますか?

編集:

私が使用しているソフトウェアは次のとおりです。

  • Sass 3.1.19 (Brainy Betty)
  • YUI コンプレッサー 2.4.7
  • ジャンゴパイプライン== 1.2.11
  • ジャンゴ1.4
4

2 に答える 2

1

まず、jar を として置くべきではありませんが、PIPELINE_YUI_BINARYJava で jar を呼び出すスクリプトを指す必要があります (ほとんどの場合、パッケージ化されたときにバンドルされます)。次のようになります。

#!/bin/sh
java -jar "/path/to/yuicompressor-2.4.7.jar" $@
于 2012-07-05T08:11:11.950 に答える
-1

STATICFILES_DIRSを次のように表示する必要があると思います。

STATICFILES_DIRS = ('./static/')

それでもうまくいかない場合は、次のようにしてみてください。

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)[0: (os.path.dirname(__file__).rindex(os.sep + 'src' + os.sep))])
STATICFILES_DIRS = (os.path.join(PROJECT_ROOT, 'static/' ))

(アイデアは、PROJECT_ROOTをアプリの最上位ディレクトリに設定することです)

設定方法により、各サブディレクトリで「css / 960_24_col.css」が検索されます。つまり、検索されます。

  • STATIC_ROOT / css / css /960_24_col.css
  • STATIC_ROOT / img / css / 960_24_col.css
  • STATIC_ROOT / js / css / 960_24_col.css
  • STATIC_ROOT / fonts / css / 960_24_col.css

そして、ファイルがにあるので、それはそれを見つけることができません

STATIC_ROOT/css/960_24_col.css

一般に、STATICFILES_DIRSは、さまざまなアプリに含まれる/static/ディレクトリのコレクションです。yourAppにmyAppが含まれていて、myAppに静的ディレクトリがある場合は、yourAppの静的ディレクトリとmyApps静的ディレクトリの両方をリストに追加します。CollectstaticはそれらをSTATIC_ROOTに結合し、その上でPipelineを実行します。

于 2012-07-10T02:41:51.903 に答える