Django collectstatic运行没有错误,但是没有收集文件 - 在heroku上

时间:2014-01-03 20:49:37

标签: django heroku

我正在尝试将网站部署到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,但它不存在

......我的文件在哪里?

1 个答案:

答案 0 :(得分:0)

自从我部署到Heroku以来,我已经很久了。但是 当我部署时:
- 我首先从我的开发笔记本电脑收集静态到Amazon S3,并确保复制了所有静态文件 然后,我把我的回购推到了Heroku - 现在,python文件通过Heroku提供,静态文件通过S3提供 - 如果调试为False,Django无论如何都不会在您的开发中提供您想要的静态 另外:
- 只要设置指向正确的位置,您就可以手动将静态文件复制到S3。

希望它有所帮助。