0

我有一个 django 服务器和一个 Angular 应用程序。

我能够启动 Angular 应用程序并使用我添加到应用程序中的链接导航到网站的各个部分。

但如果我想直接访问网站的一部分,我会收到 404 错误。

例如,如果我的应用中有一个链接可以引导我

niftysite.com/team 

有用

但是如果我输入我的浏览器网址

niftysite.com/team 

它以 404 失败

我理解这是因为默认行为是在服务器 url 中查找页面的链接。

我也知道解决方法是让服务器端 404 重定向到包含路由参数的角度 index.html 页面。

我的问题是如何?

我已经开始实施,但我不知道如何解决它。剩下的任何指导都会有所帮助。

这是我到目前为止所拥有的。

网址.py

handler404 = views.error_404

视图.py

from django.shortcuts import render

def error_404(request):
    data = {}
    return render(request, 'index.html', data)

类似于这个问题,但我没有使用 Nginx

如何使用 Nginx 将 404 请求重定向到 Django 单页应用程序的主页?

4

1 回答 1

0

这是实现:

网址.py

url(r'^.*$', views.PassToAngular.as_view()) 

确保此 url 是 urls 数组中的最后一个 url。

视图.py

from django.shortcuts import render
from django.views.generic import TemplateView


    class PassToAngular(TemplateView):

        def get(self, request, **kwargs):
            return render(request, 'index.html', context= None)

感谢 MihirKavatkar 的帮助!

于 2018-03-27T22:12:37.860 回答