2013-04-28 38 views
6

Tôi hiện đang có một ứng dụng Django sản xuất đang chạy trên Heroku. Thật không may, tôi đã không thể tắt cài đặt DEBUG trên Heroku. Tắt nó ở địa phương hoạt động tốt, nhưng khi được đẩy đến Heroku (sau heroku config:set DEBUG=False), nó không áp dụng.Heroku Django DEBUG Thiết lập không áp dụng

Trang lỗi vẫn là mặc định DEBUG trang thay vì mẫu 404, 403 và 500 trong mẫu của chúng tôi.

Tôi cũng đã thử sử dụng cài đặt DJANGO_DEBUG trong trường hợp có bất kỳ xung đột môi trường nào với DEBUG và truyền kết quả vào boolean trong tệp cài đặt. heroku config cho biết các cài đặt trong môi trường là chính xác. Đây là trên Django 1.3, Heroku Cedar.

Bất kỳ mẹo hoặc giải pháp nào?

Trả lời

10

Tệp django settings.py của bạn có còn tìm trong môi trường không?

Theo mặc định, không quan tâm đến bất cứ điều gì bạn đã đặt trong môi trường (thông qua "config: set"). Nếu bạn đang "truyền" môi trường sang boolean, hãy đảm bảo bạn đang truyền chính xác. bool ('False') vẫn là True.

Đơn giản nhất là phát hiện xem biến môi trường có tồn tại không, do đó bạn không phải lo lắng về việc nhập kiểu hoặc định dạng cụ thể của cấu hình.

DEBUG = os.environ.get('DEBUG', False)

Để vô hiệu debug, loại bỏ biến từ môi trường thay vì cố gắng gõ cast ... nó chỉ có vẻ nhiều hơn đáng tin cậy và đánh lừa bằng chứng. config:unset DEBUG

+0

Đúng, mọi thứ khác nhau giữa dàn dựng và sản xuất đều được vẽ từ môi trường. Tôi sẽ cố gắng loại bỏ nó hoàn toàn. – Murph

+0

Tuyệt vời, chỉ cần xóa nó thay vì đặt nó thành False hoạt động hoàn hảo! Cảm ơn! – Murph

+1

Tuyệt vời! Vì vậy, tôi đoán loại đúc không làm việc bool ('False') có lẽ. –

Các vấn đề liên quan