我正在尝试将网站部署到heroku上,而且我遇到了django collectstatic的问题。 它工作正常,但它突然停止了 - 我相信在设置了一些环境变量之后?
我也使用S3上传文件,但是让heroku提供静态文件
$ heroku config:set AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy
Adding config vars and restarting app... done, v21
AWS_ACCESS_KEY_ID => xxx
AWS_SECRET_ACCESS_KEY => yyy
在我的settings.py中:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_KEY']
AWS_STORAGE_BUCKET_NAME = <my app)
AWS_PRELOAD_METADATA = True
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
MEDIA_ROOT = ''
MEDIA_URL = S3_URL + MEDIA_ROOT
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
location('<my app>/static/'),
)
当我push
到heroku时,它不再运行收集静态
$ git push heroku master
Fetching repository, done.
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 385 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
-----> Removing .DS_Store files
-----> Python app detected
-----> No runtime.txt provided; assuming python-2.7.4.
-----> Using Python runtime (python-2.7.4)
-----> Installing dependencies using Pip (1.3.1)
Cleaning up...
-----> Discovering process types
Procfile declares types -> web
-----> Compressing... done, 77.7MB
-----> Launching... done, v20
<my heroku app> deployed to Heroku
To git@<my heroku app>
5b6f40e..cc69959 master -> master
设置$ heroku labs:enable user-env-compile
似乎没有效果
$ heroku run python manage.py collectstatic --noinput
运行没有失败,但没有任何影响
我还尝试使用staticfiles
在heroku目录中查找heroku run bash
,但它不存在
......我的文件在哪里?
答案 0 :(得分:0)
自从我部署到Heroku以来,我已经很久了。但是
当我部署时:
- 我首先从我的开发笔记本电脑收集静态到Amazon S3,并确保复制了所有静态文件
然后,我把我的回购推到了Heroku
- 现在,python文件通过Heroku提供,静态文件通过S3提供
- 如果调试为False,Django无论如何都不会在您的开发中提供您想要的静态
另外:
- 只要设置指向正确的位置,您就可以手动将静态文件复制到S3。
希望它有所帮助。