1

localhost/demo1 localhost/demo2..demo3 などのフォルダーで区切られた開発用と運用用の Web サイトがいくつかあります。

問題は私のJSです。それらを展開するたびに、JS ファイル、特に AJAX を使用するファイルのいくつかのパスを変更する必要があります。

以下のコードが jquery ajax の URL パラメーターであるとします。

//on dev:
url: '/demo1/some-action.php'

//on prod:
url: '/some-action.php'

JSでこれをどのように処理しますか?

4

1 に答える 1

2

次のような呼び出しページの場所に応じてフォルダー パスを返す関数を宣言できます。

function sitePath(){
    if(this.result!=undefined){
        // we have already tested so return the stored value
        return this.result
    }
    var folders=window.location.pathname.split('/');
    if(folders.length && folders[0].indexOf('demo')==0){
        // we are inside a demo folder so return and store the demo folder name
        return this.result='/' + folders[0];
    }else{
        // we are in the production environment so store an empty string
        return this.result = '';
    }
}

次に、コードで次を使用します。

url: sitePath()+'/some-action.php'
于 2013-07-16T00:36:03.970 に答える