咳です。眠いぃ。
> > 画像が表示されません。
> > また、javascriptファイルも読み込まれません。
> > リンクも、
> > <A HREF="http://localhost:6613/link.html">link</A>
> > のように絶対パスで指定すれば遷移できますが、
> > 相対パスだと遷移できません。
>
> TofuSession は FileHandler のサブクラスではないから検索しな
> いというのが理由です。
>
> 要するに「ある path prefix 以下をセッション管理したい」とい
> うことですね。どう書くのがスマートなんだろ。咳さーん
いろいろ試したのですが、みんな大変でイマイチです。
もっとシンプルにこんな風にしてみました。
FileHandlerをもう一つ登録してます。
/hello/がDivのページ、/hello/f/* が静的なページです。
view.erbからは "f/ファイル名" でファイルにアクセスできます。
http://hostname/hello/foo.html が foo.html を返したいのか、
それとも/foo.htmlという情報を元に動的なページを返したいのか、
アプリケーションによって違うので、一般的な解はないように思います。
私がDivから静的なファイルを参照する時は、相対パスは使わないかも。
# server.rb
require 'webrick';
include WEBrick;
require 'tofu/tofulet';
require 'servlet';
require 'getopts'
logger = Log::new($stderr, Log::DEBUG);
dir = File::dirname(File::expand_path(__FILE__));
s = HTTPServer.new(:Port => 6613,
:AddressFamily => Socket::AF_INET,
:BindAddress => ENV['HOSTNAME'],
:Logger => logger,
:DocumentRoot => $OPT_r || dir);
s.mount("/hello/f/", HTTPServlet::FileHandler, dir + '/hello/', nil);
bartender = Tofu::Bartender.new(HelloServlet);
s.mount("/hello/", Tofulet, bartender);
trap("INT"){ s.shutdown }
s.start;
# view.erb
<html>
<head>
<title>WEBrick Div Test</title>
<LINK href="master.css" rel="stylesheet" type="text/css">
<SCRIPT language="JavaScript" SRC="f/master.js"></SCRIPT>
</head>
<body>
<h1>Hello World!!</h1>
<IMG src="f/test.jpg" onclick="func();">
<A HREF="f/link.html">link</A>
</body>
</html>