2011-11-29 5 views
12

Điều này có thể khiến tôi trông lame nhưng tôi vẫn không thể tìm thấy bất kỳ mô tả chính thức nào cho cấu trúc ứng dụng giá điển hình (thư mục/tệp, như công khai, config.ru) hoặc nội dung tệp config.ru.Tìm kiếm cấu trúc ứng dụng giá và thông số kỹ thuật config.ru?

Trong thế giới Java, có một định nghĩa rõ ràng về ứng dụng web và các phần mà nó bao gồm (WEB-INF, META-INF web.xml).

Có đặc điểm kỹ thuật nào của ứng dụng web Rack không? Hay có gì đó mơ hồ như Ruby.

Tôi dự kiến ​​sẽ tìm thấy thông tin đó ở đâu đó trên trang web http://rack.rubyforge.org/ nhưng tôi không thể. Hãy chỉ cho tôi hướng đi đúng.


Mặc dù tôi đã đánh dấu câu hỏi này là đã trả lời nhưng điều đáng nói là bản thân câu hỏi không chính đáng lắm. Cấu trúc ứng dụng được thúc đẩy bởi sự kết hợp máy chủ web/plugin thực tế được sử dụng, như Apache/Hành khách và không phải Rack.

+0

Bạn có thấy http://rack.rubyforge.org/doc/SPEC.html không? Ngoài ra, nội dung 'config.ru' được đánh giá trong ngữ cảnh của [' Rack :: Builder'] (http://rack.rubyforge.org/doc/Rack/Builder.html). – matt

+0

nó có vẻ giống như một hướng dẫn API, chứ không phải là mô tả về bố trí ứng dụng web giá, sẽ xem lại –

Trả lời

2

một rack đơn giản như:

class HelloWorld 
    def call(env) 
    [200, {"Content-Type" => "text/plain"}, ["Hello world!"]] 
    end 
end 

và phức tạp như các ứng dụng được xây dựng trên các khung như Rails, Sinatra, vân vân, được xây dựng trên Rack.

Đạt đến cấu trúc, bạn có thể tạo cấu trúc của mình. Với Rack, bạn tạo nội dung theo cách bạn muốn nó được cấu trúc. Với Rack, về cơ bản bạn xuất ra nội dung HTTP thô.

"Introducing Rack", "32 Rack Resources to Get You Started" và "Introduction to Rack middleware" là tài nguyên để hiểu Rack tốt hơn.

Đạt đến cấu trúc, bạn có quyền tự do tổ chức tệp để đặt webapp. Bạn có thể có các ứng dụng Rack khác trong các tệp khác nhau; Tất cả những gì bạn cần là yêu cầu những tệp đó một cách chính xác.

Ứng dụng Rack có thể là bất kỳ lớp Ruby nào đáp ứng với thông báo :call với env, giống như ứng dụng HelloWorld ở trên.

+0

nếu chúng ta nói trong các thuật ngữ Java, chúng ta có thể nói rằng Rack chỉ định nghĩa Servlet API chứ không phải bố trí (cấu trúc thư mục) của một ứng dụng web? tức là không có điều gì như định nghĩa về nơi 'config.ru' phải được đặt tương đối so với các lớp ứng dụng web (tệp rb)? –

+0

không có đặc điểm kỹ thuật cho mỗi se. nhưng 'config.ru' là sorta sẽ kích hoạt ứng dụng. nó sẽ là lý tưởng nếu điều này nằm trong thư mục gốc (hoặc thư mục gốc) của ứng dụng web của bạn – iGbanam

1

Bạn đã kiểm tra the Rack Wiki? Nó bao gồm một loạt các liên kết khác nhau để hướng dẫn, thuyết trình vv (Nhưng tôi không chắc chắn về thông số kỹ thuật.) Ứng dụng web

+0

hmm Tôi đã ở đó nhưng bỏ lỡ _ @ rackup @ How-To_ bằng cách nào đó, nó có thể là những gì tôi cần cho phần cấu hình config.ru ... –