2011-01-04 20 views
26

Tôi có ứng dụng Rails và tôi muốn thêm tính năng blog; ý tưởng của tôi là sử dụng Jekyll mà là một công cụ blog tuyệt vời, tôi chỉ cần tìm ra nếu nó có thể sử dụng http://my.app.com/blog như một url (biết rằng Jekyll sẽ chạy quá trình máy chủ riêng của mình với url riêng của nó).Ứng dụng Rails và blog Jekyll có thể kết hợp với nhau không?

Có ai biết cách nào để thực hiện việc này không? Thật tuyệt vời khi có thể làm như vậy. Trân trọng!

Trả lời

20

... chỉ cần phải tìm hiểu xem nó có thể sử dụng http://my.app.com/blog như một url (biết rằng Jekyll sẽ chạy quá trình máy chủ riêng của mình với url riêng của mình).

Trong khi máy chủ web của jekyll hoạt động, có thể sẽ dễ dàng hơn, đơn giản và an toàn hơn để sử dụng máy chủ web của ứng dụng đường ray để phục vụ tất cả các trang.

Cách đơn giản nhất để thực hiện những gì bạn muốn là hooking một lời mời jekyll đến kho lưu trữ git của máy chủ, vì vậy nội dung tĩnh của jekyll được tự động thêm vào thư mục public/blog/ của ứng dụng đường ray của bạn mỗi lần có một lần đẩy.

  1. Tạo liên kết tượng trưng được gọi là public/blog bên trong thư mục public của ứng dụng. Làm cho nó trỏ đến thư mục được tạo ra _site của kho lưu trữ jekyll của bạn.
  2. Trên kho git điều khiển các nội dung của blog Jekyll, thêm một post-receive hook nào sau đây:

    #!/bin/sh 
    
    rm -rf _site 
    
    jekyll 
    

Đó là những bước cơ bản. Bạn có thể phải cấu hình quyền đọc đúng cách, bỏ qua liên kết/blog/nếu bạn đang sử dụng SCM (như bạn nên) và tự động tạo liên kết nếu bạn đang sử dụng Capistrano hoặc Vlad để triển khai.

Có các lựa chọn thay thế khác, như sử dụng thư mục thực thay vì liên kết tượng trưng và có jekyll tạo nội dung trực tiếp tại đó, nhưng tôi cảm thấy thứ tôi đang trình bày là sạch nhất.

6

Bạn có đang sử dụng nginx để đảo ngược proxy ứng dụng Rails không? Nếu vậy, bạn sẽ chỉ có thể khắc phục ngoại lệ để /blog được nginx phục vụ trực tiếp thay vì được chuyển tiếp tới Rails.

2

tôi đã cùng một vấn đề một vài tuần trước. Nếu bạn thực sự phải sử dụng Jekyll, tôi nghĩ giải pháp tốt nhất là sử dụng đá quý Bloggy đã đề cập.

Tuy nhiên, tôi không hài lòng với giải pháp này, bởi vì bạn vẫn phải sao chép hoặc đồng bộ hóa nhiều thứ như mẫu, tuyến, biểu định kiểu, v.v. Vì vậy, tôi đã quyết định triển khai tính năng blog giống như Jekyll của riêng mình trong Rails.

Bạn có thể tìm thấy bài viết của tôi mô tả triển khai tại đây: Create a simple Jekyll-like blog in your Rails 4 app.

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