2015-07-14 10 views
10

câu hỏi tương tự đã được hỏi trước đây, liên quan đến grails 2 (.3, .4). Tôi thấy nó lạ mà tôi không thể tìm được cách để làm điều này, vì nó có vẻ như là một trường hợp sử dụng tiêu chuẩn đối với tôi.Grails 3.0 static html trong ứng dụng chạy

Tôi chỉ muốn phân phát các trang html, bao gồm các liên kết .css và .js của chúng (nội dung góc và jquery) khi tôi chạy ứng dụng chạy grails.

Tôi muốn kiểm tra xem các cuộc gọi http của tôi có được handeled chính xác trên cả hai mặt - mà không cần triển khai .war và định cấu hình cơ sở dữ liệu.

afaik grails run-app chỉ đơn giản là bắt đầu một cầu cảng/tomcat - cả hai đều rõ ràng có thể phục vụ các trang .html. Tôi phải làm gì để làm cho công cụ phát triển grails triển khai các tệp của tôi?

tôi cần phải thực hiện http-yêu cầu, nên sử dụng một máy chủ khác nhau sẽ vi phạm JS-SOP, khi triển khai .WAR rất nhiều sẽ làm chậm quá trình phát triển

Tôi đã cho đến nay chỉ tìm thấy jsonp clunky , proxy, giải pháp triển khai .WAR, hoặc giải pháp cho grails 2.x

tôi đã cố gắng đặt các tập tin theo nghĩa đen ở khắp mọi nơi trong cấu trúc của dự án (/src/main, /src/main/resources, /src/main/public, thư mục tài sản và các thư mục con của nó, tạo ra các thư mục ứng dụng web trong mọi thư mục con, các thư mục Init, domain, conf - bạn đặt tên cho nó)

+0

Bạn đã bao giờ tìm ra cách để tải các liên kết 'CSS' và' file js' trong tĩnh 'file HTML' của bạn trong khi giữ 'HTML' của bạn trong thư mục' src/main/resources/public'? Ví dụ, grails giữ 'bootstrap.css' của tôi trong' grails-app/assets/bower/bootstrap/bootstrap.css'. Vì vậy, tham chiếu điều này trong 'HTML' tĩnh của tôi chứng minh là khó khăn. – Andrew

Trả lời

13

Thêm index.html để src/main/resources/public

Sau đó thêm video này vào UrlMappings.groovy:

"/"(redirect:"/index.html") 


Đối với grails> = 3.0.12

Vị trí của tài nguyên tĩnh

Trong để giải quyết một iss ue xung quanh cách các yêu cầu POST được xử lý cho các ứng dụng REST trên tài nguyên không tồn tại, tài nguyên tĩnh nằm ở trong src/main/resources/public hiện được giải quyết theo/static/** URI theo mặc định, thay vì URI cơ bản/**. Nếu bạn muốn khôi phục lại các hành vi trước thêm cấu hình sau:

grails.resources.pattern = '/ **'

https://github.com/grails/grails-core/releases/tag/v3.0.12

+1

Tôi đang tìm nơi để đặt mẫu này trong grails 3.1.7. Nó nằm trong 'application.yml',' grails: tài nguyên: mẫu: '/ **' ' – Guus

2

Trái ngược với câu trả lời được chấp nhận, bạn không cần chuyển hướng. Tôi đã thực hiện có thể làm công việc này với các cấu hình sau:

UrlMappings.groovy "/"(uri: "/index.html")

ứng dụng.yml grails: resources: pattern: '/**'

Cuối cùng, bạn chỉ cần có file index.html của bạn nằm dưới src/main/webapp

+0

Đây là trong Grails 3.1.14, FWIW –

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