- PR -

WEBアプリケーションのルートディレクトリを取得したい

投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2009-02-09 15:58
こんにちは。

Javascriptでこのように、取得したいのですが、どう取得したら良いのでしょう?
http://(domain)/(webapp_root)

location.host, location.pathnameから割り出せそうな気がするんですが、
一発で取得するコマンドは無いでしょうか?
turutosiya
常連さん
会議室デビュー日: 2003/06/10
投稿数: 49
お住まい・勤務地: 東京都
投稿日時: 2009-02-09 16:38
document.location
ではなくて、ホスト名とスラッシュ以下を別々に取りたいということですか?
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2009-02-09 16:55
引用:

未記入さんの書き込み (2009-02-09 15:58) より:
こんにちは。

Javascriptでこのように、取得したいのですが、どう取得したら良いのでしょう?
http://(domain)/(webapp_root)


何が必要なのか、正直読み取れません。protocolとhostname(ポート番号が必要ならhost)で切りたいのかpathnameの2番目の「/」までで切りたい(これは単純な文字列操作ですよね)ということなのか・・。

例示されたURLでどの部分を取得したいのでしょう?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2009-02-09 17:26
例えばTomcatのpath="/hogehoge"を取得したいということなら…できないでしょう。
パスによってWebアプリが分かれるのは、サーバ側のアプリの都合でクライアント(ブラウザレベルで)には関係ないことですから。
アプリの都合はアプリが伝えてあげないと。

[ メッセージ編集済み 編集者: mio 編集日時 2009-02-09 17:27 ]
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2009-02-09 18:01
ありがとうございます。

mioさんのおっしゃるように取りたかったのですが・・。
location.pathnameの先頭から2番目の"/"で、ルートディレクトリを取得するようにします。

function ajaxDomainURL() {
var url = location.protocol + "//" + location.host + "/";
var crtpath = location.pathname.substr(1);

while (true) {
if (crtpath.indexOf("/") > 0) {
crtpath = crtpath.substr(0, crtpath.indexOf("/"));
break;
}
}
return url + crtpath;
}

こんな感じになるのでしょうか?
エラー処理がスカスカのような気もしますが・・。

ありがとうございました。
バルクマン
会議室デビュー日: 2006/08/22
投稿数: 13
投稿日時: 2009-02-09 19:09
splitを使えば比較的楽なんじゃないでしょうか?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2009-02-10 09:07
えーと。

Webアプリにはpath="/"のものと、path="/hogehoge"のものと、path="/hogehoge/mogemoge"のものとetc...があって、これらをJavaScriptで判別することはできないです。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-10 09:33
mioさんのおっしゃるように、
引用:

アプリの都合はアプリが伝えてあげないと。



何番目のスラッシュかは、配置状況によるので
何番目のスラッシュまでがWEBアプリのパスなのかを伝える(埋め込んでおく)必要があります。
(それならいっそWEBアプリのパス埋め込めばってことになりますが)


ところでjavascriptですが、portも気にした方がいいかもしれません。

スキルアップ/キャリアアップ(JOB@IT)