This might do it:
ServletContext.getNamedDispatcher("rails-servlet").forward(request,
response)
Cheers,
Robert
Jon Tirsen wrote:
Is there a way to get a servlet engine to behave in such a way that
it falls back on a servlet if it can't find a static file?
Cheers,
Jon
----
New from ThoughtWorks: Mingle, an Agile project management application.
Mingle. Project Intelligence. Powerfully Simple.
More at http://studios.thoughtworks.com
On 18/04/2007, at 3:08 PM, Fausto Lelli wrote:
Hi,
FileServlet approach was discussed too in the earlier stages of the
plugin.
Another approach would be remove FileServlet at all, move all
static content
to the root of the web app and modify rails rounting accordingly.
Thus the
servlet container would try to load the file, and fail over to rails
if it doesn't.
Obviously this would require to change rails application directory
scheme,
which is why this option was rejected.
Fausto
On 4/18/07, Charles Oliver Nutter <[EMAIL PROTECTED]> wrote:
(but not a particularly elegant one).
So as I mentioned before, Mephisto wants to route most requests for
static content through its theming engine. This means that in general
the simple wildcarding of subdirectories under public doesn't
work...it
causes all requests for static content to get routed to the file
servlet, when there should actually be a fallback on the Rails
servlet
if a file isn't found.
So obviously the correct fix is that the file servlet and the rails
servlet should be on friendly terms, with the file servlet failing
over
to the Rails servlet when a file doesn't exist, and allowing Rails to
handle it. This would be standard Rails behavior, or so it would
seem.
My temporary fix seems to be working "well enough" however, and I am
able to deploy a fully-working Mephisto instance locally. Here's the
change I made in create_war.rb:
public_dir = File.join(config.staging, 'public')
public_files = []
public_filelist = Rake::FileList.new(File.join(public_dir,
'**/*'))
public_filelist.each do |f|
relative = f[public_dir.length..f.length]
#relative += File::SEPARATOR + '*' if File.directory?(f)
public_files << relative unless File.directory?(f)
end
Yup, you're reading that right...instead of adding all files under
public directly and all directories as wildcarded paths, this adds
all
files under all directories by name to web.xml. That certainly
clutters
up the descriptor, but it allows only files that actually exist to be
handled by the file servlet.
The correct solution would be much nicer, of course, so I'll see if I
can't look into that next. But this workaround functions
reasonably well.
- Charlie
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel