Tôi đang cố phân phát tệp tĩnh qua WhiteNoise theo đề xuất của Heroku. Khi tôi chạy collectstatic
trong môi trường phát triển của tôi, điều này xảy ra:lệnh 'collectstatic' không thành công khi WhiteNoise được bật
Post-processing 'css/iconic/open-iconic-bootstrap.css' failed!
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/base.py", line 533, in handle
return self.handle_noargs(**options)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 168, in handle_noargs
collected = self.collect()
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 120, in collect
raise processed
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 242, in post_process
content = pattern.sub(converter, content)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 181, in converter
hashed_url = self.url(unquote(joined_result), force=True)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 128, in url
hashed_name = self.stored_name(clean_name)
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 277, in stored_name
cache_name = self.clean_name(self.hashed_name(name))
File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 91, in hashed_name
(clean_name, self))
ValueError: The file 'css/fonts/open-iconic.eot' could not be found with <whitenoise.django.GzipManifestStaticFilesStorage object at 0x7f57fc5b1550>.
Lệnh thu tĩnh chạy mà không có sự cố khi tôi nhận xét ra dòng này trong cài đặt của tôi:
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
gì đang xảy ra sai ở đây và làm thế nào để Tôi sửa nó? Tôi đã thử xóa thư mục đầu ra tệp tĩnh của mình. Nó chạy trơn tru cho đến khi nó bắt đầu xử lý một tệp cụ thể.
Hành vi này có cụ thể đối với WhiteNoise không? Bởi vì tôi không gặp vấn đề nếu tôi đã tắt WhiteNoise. Tôi đã kiểm tra 'open-iconic-bootstrap.css' và không có sự khác biệt giữa tệp gốc và bản sao trong thư mục tĩnh. – Pieter
Không, nó không phải là WhiteNoise cụ thể: bạn sẽ tìm thấy bạn nhận được nó nếu bạn sử dụng 'django.contrib.staticfiles.storage.CachedStaticFilesStorage' là tốt. Bạn không phải sử dụng phần cuối lưu trữ để sử dụng WhiteNoise, nó chỉ giúp bạn có hiệu suất tốt hơn. –
Phần lưu trữ phụ trợ chỉ phàn nàn vì tệp phông chữ '.eot' của bạn bị thiếu, vì vậy bạn sẽ thấy phông chữ biểu tượng của bạn sẽ không hoạt động trong Internet Explorer. Nếu bạn sửa chữa thì 'collectstatic' sẽ chạy mà không có vấn đề gì. –