2012-05-11 23 views
2

.lessのファイルをdjango-pipelineでコンパイルしようとしています。私は正しくオーバーcollectstatic、すべてのコピーを実行し、私はこのエラーを取得する場合:NoneTypeにはコンパイル時に 'rfind'属性がありませんdjango-pipelineで

Traceback (most recent call last): 
    File "manage.py", line 35, in <module> 
    execute_manager(settings) 
    File ".../lib/python2.7/site-packages/django/core/management/__init__.py", line 459, in execute_manager 
    utility.execute() 
    File ".../lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File ".../lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File ".../lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File ".../lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle 
    return self.handle_noargs(**options) 
    File ".../lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 163, in handle_noargs 
    collected = self.collect() 
    File ".../lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 119, in collect 
    dry_run=self.dry_run) 
    File ".../lib/python2.7/site-packages/pipeline/storage.py", line 26, in post_process 
    output_file = packager.pack_stylesheets(package) 
    File ".../lib/python2.7/site-packages/pipeline/packager.py", line 90, in pack_stylesheets 
    variant=package.variant, **kwargs) 
    File ".../lib/python2.7/site-packages/pipeline/packager.py", line 99, in pack 
    paths = self.compile(package.paths) 
    File ".../lib/python2.7/site-packages/pipeline/packager.py", line 93, in compile 
    return self.compiler.compile(paths) 
    File ".../lib/python2.7/site-packages/pipeline/compilers/__init__.py", line 34, in compile 
    compiled_content = compiler.compile_file(content, finders.find(path)) 
    File ".../lib/python2.7/site-packages/pipeline/compilers/less.py", line 19, in compile_file 
    cwd = os.path.dirname(path) 
    File ".../lib64/python2.7/posixpath.py", line 120, in dirname 
    i = p.rfind('/') + 1 
AttributeError: 'NoneType' object has no attribute 'rfind' 

私は私settings.py内の型を持つ奇妙な何かをやったとは思わないが、ここでの該当ビットがちょうどですケースには:

STATICFILES_STORAGE = "pipeline.storage.PipelineCachedStorage" 

PIPELINE = True 

STATICFILES_DIRS = (
    ("projectname", os.path.join(REPO_ROOT, "static")), 
) 

PIPELINE_COMPILERS = (
    'pipeline.compilers.coffee.CoffeeScriptCompiler', 
    'pipeline.compilers.less.LessCompiler' 
) 

PIPELINE_JS = { 
    'projectname': { 
     'source_filenames': ('js/*.coffee',), 
     'output_filename': 'projectname/js.js' 
    } 
} 

PIPELINE_CSS = { 
    'projectname': { 
     'source_filenames': ('css/style.less',), 
     'output_filename': 'projectname/css.css' 
    } 
} 

私はグロブ(すなわちcss/*.less)と私のCSS source_filenamesを交換した場合、私は同じ結果を得ます。ファイルは間違いなく私がそれを言っている場所です(最低でも、私が知っているパスで置き換えれば、別のエラーが出ます)。 PIPELINE_CSS行がコメントアウトされているので、私のCoffeeScriptはJSにうまくコンパイルされます。何か案は?

答えて

1

あなたはこの実行してみてくださいことができます:それ以外の場合は私も知っている、

No matching file found for 'css/style.less'.

あなたはおそらく間違って設定staticfilesだ:あなたはこの結果を持っている場合は

$ python manage.py findstatic css/style.less

を。

+1

私は自分のサイトに静的ファイル 'STATICFILES_DIRS'に' projectname'という名前空間を与えていたので、 'source_filenames'を'( 'projectname/css/style.less'、) 'に設定する必要がありました。奇妙なのは、JSが同じ場所にあるためですが、パス内に** projectnameというものがなくても動作します。 Go figure。 –

+0

私は同じエラーがありましたが、私の場合はoutput_filenameを指定していませんでした。うまくいけば、誰かがこの質問に遭遇するのを助けてくれるでしょ – concentricpuddle

関連する問題