Local (dev)
Trên máy bạn. Để làm và thử. Khóa nằm trong file .env ở máy.
Đây là chỗ hay làm người mới khóc: trên máy chạy ngon, deploy lên là hỏng. Lý do gần như luôn nằm ở environment variable và cách frontend nối với backend khi đã lên thật.
Hiểu ngắn: là những giá trị cấu hình để bên ngoài code, như khóa và đường nối backend, để vừa an toàn vừa đổi được theo nơi chạy.
Env var thường giữ:
Tách ra ngoài giúp bạn:
Cùng một app nhưng chạy ở vài "phiên bản" khác nhau, mỗi cái dùng env riêng.
Trên máy bạn. Để làm và thử. Khóa nằm trong file .env ở máy.
Bản xem trước. Hosting tạo link tạm để xem thử thay đổi trước khi ra thật.
Bản thật. Cái mà người dùng đang dùng. Cần env chuẩn và cẩn thận nhất.
Trình tự chung để giao diện đã deploy nói chuyện được với backend đã deploy.
Backend khi deploy sẽ có một đường link riêng (khác với lúc chạy trên máy).
Vì sao: frontend thật phải gọi backend thật, không phải bản trên máy bạn.Điền đường link backend và các khóa công khai vào phần cấu hình env của hosting.
Vì sao: hosting không có file .env trên máy bạn, phải khai báo lại.Bản preview và bản thật có thể trỏ tới backend khác nhau. Khai báo riêng cho từng cái.
Vì sao: tránh bản thử nghịch nhầm vào dữ liệu thật.Ở backend, khai báo địa chỉ frontend được phép gọi tới.
Vì sao: mặc định backend chặn các địa chỉ lạ, không khai báo là bị chặn.Đẩy lại để env có hiệu lực, rồi thử đăng nhập, thêm dữ liệu trên bản đã deploy.
Vì sao: env thường chỉ áp dụng sau khi deploy lại.Đây là lỗi gần như ai deploy app có backend cũng gặp một lần. Hiểu rồi thì xử rất nhanh.
Frontend ở một địa chỉ, backend ở địa chỉ khác. Vì an toàn, trình duyệt chặn frontend gọi sang backend nếu backend chưa nói "tôi cho phép địa chỉ này".
Vào cấu hình backend, thêm địa chỉ frontend của bạn vào danh sách được phép gọi. Khai đúng địa chỉ bản thật và bản preview là hết lỗi.
Đây là nhóm lỗi gây ra câu kinh điển: "máy mình chạy mà deploy hỏng".
Lỗi số một. Máy bạn có file .env, hosting thì không, nên app thật thiếu khóa.
Frontend gọi backend bị chặn vì backend chưa cho phép địa chỉ đó.
App thật vẫn gọi địa chỉ localhost nên không ai ngoài máy bạn dùng được.
Đặt khóa bí mật vào env của giao diện, ai mở app cũng xem được.
Khai báo lại khóa và đường link backend trên hosting, cho đúng từng môi trường, mở CORS cho frontend, là hai phần của app bắt tay nhau êm đẹp trên internet.
← Về trang chủ deployment · Phong Ho - AI Business