Tôi nhận thấy một số hành vi lạ với redirect
khi tôi đặt app.context
một cách nhất định. Tôi tìm thấy một lỗi trong Grails JIRA trong đó mô tả vấn đề của tôi hoàn hảo, nhưng nó đã được đánh dấu là UTR: http://jira.grails.org/browse/GRAILS-7546Grails chuyển hướng đến địa chỉ sai khi sử dụng app.context?
Dưới đây là mô tả của tôi về vấn đề:
Tôi hiện đang sử dụng Grails 2.0M2. Tôi đã các thuộc tính sau theo quy định tại application.properties tôi file:
app.context=/
app.name=foobar
Khi tôi gọi redirect
trong một bộ điều khiển, redirect
sẽ bổ sung tên ứng dụng vào uri tôi cung cấp, sau đó gây ra một 404. Dưới đây là làm thế nào tôi 'm làm điều này:
String partialUrl = createLink(mapping: 'helloworld') // returns `/hello/world`
redirect(uri: partialUrl) // INCORRECTLY redirects to
// `http://mysite.com/foobar/hello/world`
// instead of `http://mysite.com/hello/world`
Giả sử rằng tôi có một ánh xạ URL nào có tên helloworld
định nghĩa trong file UrlMappings.groovy
của tôi với một con đường /hello/world
.
Vì vậy, câu chuyện dài ngắn, nếu tôi đặt app.context
để /
, tôi sẽ KHÔNG mong đợi app.name
để hiển thị trong URL chuyển hướng cuối cùng của tôi.
Đây có phải là lỗi hoặc hành vi dự kiến không? Bất kỳ ý tưởng nào về cách dễ nhất tôi có thể xây dựng URL chuyển hướng mà không thực hiện quá nhiều bước thủ công?
Phải ... Tomcat có thể ghi đè app.context trong sản xuất, tuy nhiên vấn đề vẫn còn là 'chuyển hướng' mà Grails đang sử dụng app.name khi tạo URL chuyển hướng thay vì sử dụng app.context. – Polaris878