Tôi đang xây dựng ứng dụng Flask với React, tôi đã gặp vấn đề với định tuyến.Flask và React routing
Các backend có trách nhiệm là một API, do đó một số tuyến như sau:
@app.route('/api/v1/do-something/', methods=["GET"])
def do_something():
return something()
và các tuyến đường chính dẫn đến Phản ứng:
@app.route('/')
def index():
return render_template('index.html')
Tôi đang sử dụng react-router trong Ứng dụng React, mọi thứ hoạt động tốt, phản ứng-router đưa tôi đến /something
và tôi nhận được hiển thị, nhưng khi tôi làm mới trang trên /something
thì ứng dụng Flask sẽ xử lý cuộc gọi này và tôi nhận được lỗi Not Found
.
Giải pháp tốt nhất là gì? Tôi đã suy nghĩ về việc chuyển hướng tất cả các cuộc gọi không gọi số /api/v1/...
đến /
nó không lý tưởng vì tôi sẽ lấy lại trang chủ của ứng dụng của tôi, không hiển thị chế độ xem Phản hồi.
Cách nhanh nhất và dễ nhất nếu bạn không muốn chương trình phụ trợ của mình xử lý các url không phải là sử dụng api lịch sử HTML5. Việc hủy kích hoạt nó sẽ dẫn đến các url băm như '/ #/something' và tải lại chúng sẽ luôn kích hoạt chế độ xem'/'trên phần cuối. Nếu không, bạn cần phải xử lý các yêu cầu trên chương trình phụ trợ của bạn hoặc chuyển hướng chúng đến ứng dụng phản ứng của bạn, do đó cần phân tích yêu cầu và kích hoạt thay đổi vị trí nếu url được yêu cầu không phải là '/'. – sthzg
Điều đó có vẻ giống như một số giải pháp, cảm ơn! – knowbody
Tôi không nghĩ đó là một giải pháp tốt. Đó là năm 2015, bạn thực sự nên sử dụng API lịch sử. –