2016-08-08 43 views
-1

我想在S3 AWS上部署我的项目静态文件,但是当我在终端上收集静态文件时,出现此错误。我听说,它看起来像你,我想包括我的模板静态资产,但我已经指定了一个目录,而不是一个文件......,我不明白这一点:/Django MissingFileError:路径是一个目录

Traceback (most recent call last): 
File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run 
self.result = application(self.environ, self.start_response) 
File "/home/damian/proj1/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 63, in __call__ 
return self.application(environ, start_response) 
File "/home/damian/proj1/local/lib/python2.7/site-packages/whitenoise/base.py", line 57, in __call__ 
static_file = self.find_file(environ['PATH_INFO']) 
File "/home/damian/proj1/local/lib/python2.7/site-packages/whitenoise/django.py", line 75, in find_file 
return self.get_static_file(path, url) 
File "/home/damian/proj1/local/lib/python2.7/site-packages/whitenoise/base.py", line 111, in get_static_file 
self.add_stat_headers(headers, path, url) 
File "/home/damian/proj1/local/lib/python2.7/site-packages/whitenoise/base.py", line 121, in add_stat_headers 
file_stat = stat_regular_file(path) 
File "/home/damian/proj1/local/lib/python2.7/site-packages/whitenoise/utils.py", line 30, in stat_regular_file 
raise MissingFileError('Path is a directory: {0}'.format(path)) 
MissingFileError: Path is a directory: /home/damian/proj1/blog/static_in_pro/our_static 
[08/Aug/2016 13:14:21] "GET/HTTP/1.1" 500 59 

我(不是全部)设置:

STATIC_URL = '/static/' 

STATIC_ROOT = os.path.join(BASE_DIR, "static_in_env", "static_root") 

STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static_in_pro", "our_static"), 
#'/var/www/static/', 
) 

MEDIA_URL = '/media/' 

MEDIA_ROOT = os.path.join(BASE_DIR, "static_in_env", "media_root") 

CRISPY_TEMPLATE_PACK = 'bootstrap3' 

MEDIAFILES_DIRS = (MEDIA_ROOT) 


#AWS S3 STATICK FILES 

AWS_HEADERS = { # see  http://developer.yahoo.com/performance/rules.html#expires 
    'Expires': 'Thu, 31 Dec 2099 20:00:00 GMT', 
    'Cache-Control': 'max-age=94608000', 
} 

AWS_STORAGE_BUCKET_NAME = '###' 
AWS_ACCESS_KEY_ID = '###' 
AWS_SECRET_ACCESS_KEY = '###' 


AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME 

STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN 

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

感谢您的帮助,并指出正在进行的工作的正确路径! 干杯

回答

0

如果你只使用django-storages你需要指定

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

代替STATICFILES_STORAGE

1

该错误是从白噪声,但如果你的服务,你不需要使用白噪声来自S3的静态文件。您应该从wsgi.py文件中删除WhiteNoise参考。

+0

它工作:)谢谢 – Damian