in reply to Dancer bugs? send_file(), content type, and response_content_is()
Regarding "the best way" of serving Javascript files, you should just put them in the /public directory and remove your /javascripts route. Any request that does not match a route, e.g. GET /foo/bar.js will look into /public for a file called /public/foo/bar.js and serve that directly; if it doesn't exist you get a 404 as expected. In your case you're not using system_path in your call to send_file, so the file will only be served from the public directory anyway...
I've looked at the source for send_file and it does seem to propagate the MIME type from the function call to the rendering of the response. However, I've been bitten by Dancer::Test before. Since it's returning a filehandle instead of a rendered response I'd say it's not calling get_file_response_for_path from Dancer::Renderer, which is responsible for adding the Content-Type header. In short, don't expect Dancer::Test to mimic a real web app from end to end. It's there to allow you to test plugins and such. Regarding response_exists, that does seem like a documentation bug.
Finally, rest assured that Dancer *is* a mature framework. We use it at $work for many internal applications and we have never had serious problems.
The Dancer folk at #dancer on irc.perl.org are very responsive and friendly, be sure to check there if you have other questions.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Dancer bugs? send_file(), content type, and response_content_is()
by hardburn (Abbot) on Mar 04, 2013 at 18:56 UTC | |
by pokki (Monk) on Mar 05, 2013 at 20:42 UTC |