Có cách nào trong Play để chú thích các tuyến đường để thông báo rằng một tuyến đường phần/nhóm nhất định là chỉ có sẵn trong dev hoặc prod chế độplay framework tập tin tuyến đường: đường sản xuất riêng biệt từ các tuyến đường Dev
Trả lời
Vâng, đây không phải tài liệu, vì vậy tôi không chắc chắn nếu điều này là cố ý có thể hay không, nhưng tôi đã tìm thấy một cách để thực hiện công việc này. Tuy nhiên, xin lưu ý vì đây là một tính năng không có giấy tờ, có thể có nghĩa là nó không được mong đợi và do đó có thể bị phá vỡ trong các phiên bản phát sau này.
Bạn có thể đạt được những gì bạn muốn bằng cách sử dụng dòng sau trong tệp tuyến đường của bạn.
%{ if (play.mode.isDev()) }%
Tôi tạo ra một ứng dụng thử nghiệm với một vài hành động
public class Application extends Controller {
public static void index() {
render();
}
public static void noDev() {
renderText("NoDev");
}
public static void noProd() {
renderText("NoProd");
}
}
sau đó tôi thêm vào phần sau đây để các tuyến đường của tôi tập
# Home page
GET / Application.index
# Ignore favicon requests
GET /favicon.ico 404
# Map static resources from the /app/public folder to the /public path
GET /public/ staticDir:public
%{ if (play.mode.isDev()) }%
GET /route1 Application.noDev
GET /route2 Application.noDev
GET /route3 Application.noDev
* /{controller}/{action} {controller}.{action}
%{ if (play.mode.isProd()) }%
GET /route4 Application.noProd
GET /route5 Application.noProd
GET /route6 Application.noProd
* /{controller}/{action} {controller}.{action}
Vì vậy, bạn có thể thấy rằng việc sử dụng một đơn giản nếu tuyên bố, nó sẽ thực hiện các nhóm tuyến đường tiếp theo chỉ trong chế độ đó. Câu lệnh if sẽ kết thúc khi câu lệnh if tiếp theo được tìm thấy.
Nếu ở chế độ Dev bạn cố gắng truy cập route4, bạn sẽ không thể truy cập nó, và bạn sẽ thấy trang RouteNotFound cho thấy các tuyến có sẵn là các tuyến mà bạn đã xác định chỉ dành cho nhà phát triển.
Đối play framework phiên bản 2.x:
- Bạn cần có một file
routes
cho phép nóiprod.routes
trong thư mục gốc của ứng dụng của bạn (giống directoy của gốcroutes
tập tin), tập tin này chứa chỉ các tuyến đường bạn muốn sản xuất. - Sau đó, bạn tạo một tệp khác
.conf
nhưprod.conf
bên trong thư mụcconf
. - Bây giờ tập tin conf mới này phải chứa sau:
cho play framework 2.4 và mới hơn:
include "application.conf"
play.http.router=prod.Routes
Hoặc không mới .conf
tập tin thông qua tham số:
-Dplay.http.router=prod.Routes
Và nếu lớn hơn 2.4 thì:
include "application.conf"
application.router=prod.Routes
Và khi bạn chạy sản xuất chạy nó với -Dconfig.file=prod.conf
- 1. Sử dụng tuyến đường javascript trong Play Framework 2
- 2. Tuyến đường và tuyến đường ray Ember
- 3. ASP.net MVC 3 tuyến đường cho các tập tin jpg
- 4. Xác định các đoạn đường chung từ các tuyến đường GPS
- 5. Sự khác biệt giữa tuyến đường và tuyến đường trong tệp GPX
- 6. đường dẫn tập tin như là đối số tuyến đường MVC
- 7. khác biệt giữa tuyến đường thu gom và tuyến đường thành viên trong ruby trên đường ray?
- 8. Không thể tìm thấy tên tuyến đường trong bộ sưu tập tuyến đường
- 9. Zend Framework: Cách chuyển hướng các tuyến đường cũ sang tuyến đường tùy chỉnh mới 301 như thế nào?
- 10. C# MVC định tuyến - nhiều tuyến đường
- 11. đường ray 3 tuyến đường: tuyến đường tự động khác nhau cho mô hình
- 12. Heroku và Tuyến đường 53
- 13. Gọi các tuyến đường đã được xác định trong các tuyến đường khác trong Express NodeJS
- 14. Symfony2 Nhận tên tuyến đường từ URL
- 15. Rails 3: tuyến đường subdomain
- 16. Tuyến đường ray có ngày
- 17. Tại sao đường ray không tạo trình trợ giúp tuyến đường cho tuyến đường 'phù hợp' của tôi?
- 18. ray cào các tuyến đường ở đâu họ từ
- 19. Đường ray tuyến tính logic
- 20. Làm thế nào để nội tuyến css khi sử dụng đường ray tài sản đường ray
- 21. Tuyến đường mặc định cho đường dẫn gốc sử dụng thuộc tính asp.net định tuyến
- 22. Thực tiễn không tốt để gọi các tuyến đường tốc hành từ một tuyến khác?
- 23. Tuyến đường/lối đi/đường tùy chỉnh trên Google Maps
- 24. Programatically thêm một tuyến đường trong Play2.0
- 25. Lấy các tập tin của nhà cung cấp Gem trong đường dẫn đường ống tài sản
- 26. Khi sử dụng các tuyến đường nông, các tuyến đường khác nhau yêu cầu các đối số form_for khác nhau
- 27. Sử dụng định tuyến góc dọc theo tuyến đường tròn
- 28. Devise không tạo đường dẫn/tuyến đường đăng ký
- 29. Regex để trích xuất tên tập tin từ đường dẫn
- 30. Lập trình thêm tuyến đường vào Backbone.Router?
Đó là siêu ngọt. Tôi không có ý tưởng bạn có thể làm logic trong tập tin tuyến đường. –
Tôi biết bạn có thể làm một số logic, vì nó là một giải pháp cho vấn đề bối cảnh chiến tranh, nhưng không chắc chắn bao nhiêu logic là có thể. Vì vậy, tôi đã thử nó, và nó đã làm việc! – Codemwnci
Xuất sắc ... +1 – sojin