我有一个DjangoREST-Nginx-Gunicorn版本,我使用angular作为前端。
这是我第一次使用这个堆栈,虽然我非常熟悉Django。
根据我以前的情况,我使用render
使用django模板提供页面。
由于我使用的是REST和angular,项目构建有点不同,我想知道如何通过这个堆栈提供角度应用程序。
这是我的项目构建
├── client
│ ├── client-app
│ └── index.html
├── gunicorn_start.sh
├── run
│ └── gunicorn.sock
└── server
├── config
├── __init__
├── manage.py
├── __pycache__
├── requirements.txt
├── static
├── urls.py
└── views.py
我希望做的是服务client/index.html
并让角度应用程序处理所有内容。
这样做的正确方法是什么?
编辑:
我在views.py
def index(request):
return render(request, 'client/index.html')
但我得到了一个例外
在的TemplateDoesNotExist
答案 0 :(得分:1)
当域名输入时你应该将用户重定向到client / index.html然后使用angular-router你可以做几乎所有你使用php或django路由完成的事情 for more info about angular routing
答案 1 :(得分:1)
找不到模板,因为未设置TEMPLATE_DIRS
,或者因为您的模板不在app/templates
文件夹中,app
位于INSTALLED_APPS
(并且'django.template.loaders.app_directories.Loader'
中有TEMPLATE_LOADERS
)。
ps:如果您未在视图中执行任何操作,即仅渲染模板
def index(request):
return render(request, 'client/index.html')
然后您可以在urls.py
:
url(r'^$', TemplateView.as_view(template_name='client/index.html'))
(或者你可能只拼错/
错了?它应该是^$
...)