2016-05-05 5 views
0

私のフロントエンドモジュールでは、ブラウズに直接ロードできるようにしたい。ホームディレクトリを認識するために私のベースタグが必要ですが、そうではありません。パスにホームディレクトリを指定する方法はありますか?ベースタグのホームディレクトリを指定する方法は?

チルダが解釈されないため、以下は機能しません。

<base href="~/root/web/source/" target="_blank"> 

私は

<base href="/web/source/" target="_blank"> 

を使用する場合の主要/(ルート)のためのさまざまな評価があるのでそれはサーバー用ではなく、私のクライアント上で動作します。用

同様の結果:

<base href="web/source/" target="_blank"> 

奇妙なことに、サーバはフォワード先行解釈はない前方に先行スラッシュと同じスラッシュ。サーバは非常に異なっているとして相対パス(public_htmlディレクトリ)

/root 

を解釈しながら

/Users/a/root/web/source/htm 

クライアントとして相対パスをinterprests。

+0

'〜/'の代わりに '。/'を試してみましたか?ドットは現在のディレクトリを意味し、チルダは通常ホームディレクトリを意味しますが、ブラウザでドットが有効な間はブラウザでは有効ではありません。 –

答えて

0

(Iは、ベースURLからの相対パスを解釈するドットを省略する一方現在位置に対する相対パスを解釈し説明したように)パスの先頭に./を使用する代わりに使用することであろういくつかのJavaScriptは、提供された部分文字列に基づいて正しいパスを判断するために使用されます:

// will set the <base> path automatically 
// as whatever path ""web/source/" is located in 
(function(relativePath){ 
    var baseElement = document.getElementsByTagName("base")[0]; 
    var url = ""+window.location; 
    var basepath = url.substr(0, url.indexOf(relativePath)); 
    baseElement.href = basepath+relativePath; 
})("web/source/"); 

明らかに、スクリプトタグが必要です。

+0

JS - window.location.originを使用して終了し、JSでベースタグを作成します。 –

関連する問題