昨天,我创建了这个帖子:DjangoRestFramework browsable api looks different locally vs when deployed on server?如何在部署Django应用程序时向AWS提供静态文件(`python manage.py collectstatic`不起作用)?
基本上,当我做python manage.py runserver
,这表明了:
但经过我部署它AWS(eb deploy
),这是我所看到的,当我访问网站:
上述帖子的答案提到,这是因为我的静态文件丢失。所以,我搜索了如何在AWS部署静态文件和整个本教程中传来:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html#python-django-update-app
“创建站点管理员”部分中,它提到的是,为了提供静态文件,我必须首先STATIC_ROOT
在settings.py
定义(所以我做了:STATIC_ROOT = os.path.join(BASE_DIR, "ebdjangoapp/static/")
),然后我做了eb deploy
。但是,该网站仍然与第二张图片(没有静态文件)相同。然后我试着做python manage.py collectstatic
(这里面创建了一个包含rest_framework
目录的静态文件夹,其中包含css
文件等),然后再次做了eb deploy
,但站点stil看起来与第二张图片相同。
为什么静态文件仍然没有显示出来?
注意,我搜索周围,跨越此帖一:Django app deployment not loading static files和回答说:
“然后,您需要通过你选择的Web服务器在settings.STATIC_URL
服务settings.STATIC_ROOT
,非常普遍的Nginx的背后反向代理您的Apache-mod_wsgi应用服务器“。
但我不知道web服务器(nginx,反向代理,Apache-mod_wsgi)如何工作。我有一个Django应用程序,我使用python manage.py runserver
在本地运行,并且我拥有AWS elastic beanstalk。我通过执行eb deploy
将我的Django应用程序部署到AWS。我需要采取哪些步骤才能使静态文件出现在部署中(假设我不知道如何配置nginx,反向代理等)。
你是否在任何时候运行''python manage.py collectstatic''? –
@GrahamDumpleton是的,我在做'eb deploy'之前就做了。 (基本上,我是在本地做的,所有文件都放在静态文件夹中,然后我部署它)。 – user2719875