2013-09-02 33 views
7

Tôi đã định cấu hình django-pipeline để nén js và css. Trong khi js hoạt động, nó không thể tìm thấy các tập tin css.Đường ống Django không thể tìm thấy tệp css tĩnh

Có thể tìm thấy tệp bằng lệnh findstatic. Tôi đang thử nghiệm nó chỉ với một tập tin bây giờ trong đó có một quy tắc css duy nhất. Dưới đây là cấu hình của tôi

PIPELINE_CSS = { 
    'all_css': { 
     'source_filenames': (
      'css/test.css' 
     ) 
    }, 
    'output_filename': 'css/main.css' 
} 

PIPELINE = True 
PIPELINE_CSS_COMPRESSOR = None 

Và thông báo lỗi -

% ./manage.py collectstatic --traceback               

You have requested to collect static files at the destination 
location as specified in your settings. 

This will overwrite existing files! 
Are you sure you want to do this? 

Type 'yes' to continue, or 'no' to cancel: yes 
Copying '/Users/apoorvparijat/Documents/Work_Related/programming/my_projects/analytics_app/devel/stable/static/css/test.css' 
Traceback (most recent call last): 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/core/management/base.py", line 222, in run_from_argv 
self.execute(*args, **options.__dict__) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/core/management/base.py", line 255, in execute 
output = self.handle(*args, **options) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/core/management/base.py", line 385, in handle 
return self.handle_noargs(**options) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 164, in handle_noargs 
collected = self.collect() 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 120, in collect 
dry_run=self.dry_run) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/storage.py", line 28, in post_process 
packager.pack_stylesheets(package) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 94, in pack_stylesheets 
variant=package.variant, **kwargs) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 103, in pack 
paths = self.compile(package.paths, force=True) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 34, in paths 
return [path for path in self.sources 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 26, in sources 
for path in glob(pattern): 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/glob.py", line 18, in glob 
return sorted(list(iglob(pathname))) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/glob.py", line 29, in iglob 
if default_storage.exists(pathname): 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/storage.py", line 89, in exists 
exists = self.finders.find(name) is not None 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 239, in find 
result = finder.find(path, all=all) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 79, in find 
matched_path = self.find_location(root, path, prefix) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 96, in find_location 
path = safe_join(root, path) 
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/utils/_os.py", line 77, in safe_join 
'path component (%s)' % (final_path, base_path)) 
ValueError: The joined path (/) is located outside of the base path component (/Users/apoorvparijat/Documents/Work_Related/programming/my_projects/analytics_app/devel/stable/static) 

Trả lời

22

Bạn đang thiếu một dấu phẩy.

'source_filenames': (
    'css/test.css' # add a comma here 
) 

Nếu bạn có một bộ chỉ với một phần tử, bạn cần thêm dấu phẩy ở cuối, nếu không thì Python sẽ coi nó là một biểu thức chứ không phải một bộ tuple.

Các vấn đề liên quan