Tôi có một ứng dụng trang đơn được tạo trong Vue.js sử dụng Chế độ lịch sử HTML5 để định tuyến và tệp html được phân phát bằng Django.Xử lý url ứng dụng trang đơn và url django
Các urls.py của django là như vậy:
urlpatterns = [
url(r'^$', views.home),
url(r'^admin/', admin.site.urls),
url(r'^api-token-auth/', obtain_jwt_token),
]
Và views.home:
def home(request):
return render(request, 'index.html')
Hãy xem xét kịch bản sau đây:
- lần User trang chủ (ví dụ:
/
)
Vì trang chủ phản hồi với index.html bắt buộc cho ứng dụng Trang đơn Vuejs, nó hoạt động giống như ứng dụng của nó.
- Từ đó người dùng điều hướng đến trang giới thiệu (ví dụ:
/username/12
).
Nó vẫn hoạt động tốt khi điều hướng với bộ định tuyến Vue.
- Bây giờ, người dùng làm mới trang.
Kể từ khi không có /username/12
trong urls.py mô hình, nó sẽ hiển thị Trang không tìm thấy (404).
Bây giờ, tôi có thể cung cấp một mô hình trong urls.py để bắt tất cả các mô hình theo thứ tự cuối cùng như thế này:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api-token-auth/', obtain_jwt_token),
url(r'^.*$', views.home),
]
Nhưng url khác như phương tiện truyền thông hoặc các url tĩnh cũng sẽ trỏ đến cùng bắt tất cả mẫu regex. Làm thế nào tôi có thể giải quyết vấn đề này?
Các nhận tất cả URL là con đường để đi. Điều này sẽ không ảnh hưởng đến phương tiện truyền thông hoặc tĩnh, vì chúng không được phục vụ bởi Django trong sản xuất. –