我在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在製作中提供的。 –