Hi! On Mon, Aug 02, 2010 at 09:19:25AM -0400, David Susco wrote: > On a somewhat related note. How do people handle static content in a > development environment? Is there a way to make the camping server > aware of the public/ directory and serve the files within it? > > What about in production? Is passenger smart enough to pass requests > for files in public/ back to apache or is some further configuration > required?
I think everyone uses some variant on the following controller: class StaticX MIME_TYPES = {'.css' => 'text/css', '.js' => 'text/javascript', '.jpeg' => 'image/jpeg', '.jpg' => 'image/jpeg', '.png' => 'image/png'} def get(path) @headers['Content-Type'] = MIME_TYPES[path[/\.\w+$/, 0]] || "text/plain" unless path.include? ".." @headers['X-Sendfile'] = (BASE_DIR + path).to_s else @status = "403" "403 - Invalid path" end end end with declaring at top: BASE_DIR = Pathname.new(__FILE__).dirname + "public" Given that passenger picks up Camping apps only if they have a "public" subdirectory and a config.ru, it might make sense to create a camping/static library for serving static data with auto-mime-type detection and ship this with Camping. Serving static files seems to be done often. What do you guys think? N.B. I had to install Apache with Passenger and the xsendfile module, but then it worked out of the box. Kind regards, Paul -- PhD Student @ Eindhoven | email: p...@luon.net University of Technology, The Netherlands | JID: p...@luon.net >>> Using the Power of Debian GNU/Linux <<< | GnuPG key ID: 0x50064181 _______________________________________________ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list