我在Vue.js中创建了一个使用HTML5历史模式进行路由的单页应用程序,并且该html文件与Django一起提供。处理单页面应用程序url和django url
的urls.py Django的的是像这样:
urlpatterns = [
url(r'^$', views.home),
url(r'^admin/', admin.site.urls),
url(r'^api-token-auth/', obtain_jwt_token),
]
而且views.home:
def home(request):
return render(request, 'index.html')
考虑以下情形:
- 用户访问主页(即
/
)
因为主页响应单页Vuejs应用程序所需的index.html,它的工作原理与它应该的一样。
- 从那里用户导航到关于页面(即,
/username/12
)。
它仍然正常工作,因为它的Vue路由器导航。
- 现在,用户刷新页面。
因为有一个在urls.py模式没有/username/12
,它会显示找不到网页(404)。
现在,我可以提供urls.py另一种模式赶在最后订单的所有模式,因为这:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api-token-auth/', obtain_jwt_token),
url(r'^.*$', views.home),
]
但其他网址,如媒体或静态网址也将指向同捕捉所有图案正则表达式。我怎么解决这个问题?
包罗万象的网址是要走的路。这不会影响媒体或静态,因为它们不是由Django在制作中提供的。 –