13

私はこのサイトを持っており、ルートフォルダ/およびそれが機能する実際のフォルダを見つける必要があります。

ここでの私の問題は、開発中にローカルサーバーにフォルダーがあり、それが独自のフォルダーにあることです。

次に、オンラインでフォルダ内に開発サイトがあるので、ライブプロダクションなどの前にすべてをテストできます。

ローカルサーバー:localhost / mytestSiteA / .. ..

ライブサーバーテストフォルダー:www.asite.com/devbuild/...。

これで、ルートを介してルートを取得できます。

    document.location.hostname 

ただし、開発モードでコンテンツなどをロードできるように、この後にフォルダ名を追加する必要があります。

ローカルサーバー

 document.location.hostname + '/mytestSiteA/'

ライブテストサイト

 document.location.hostname + '/devbuild/'

しかし、私の問題は、ローカル開発、ライブ開発、ライブモードのいずれであるかによって決定される変数を設定するのではなく、この内部フォルダーを取得する簡単な方法があるかどうかです。これは面倒な場合があり、現在の内部フォルダーを動的に取得するのがよいでしょう。パスを正しく追加できるように、手動で変更するなどの方法ではありません。

また、この中にjsスクリプトをロードするフォルダーがあり、フルパスを取得できるかのように役立ちます。

ローカルサーバー:localhost / mytestSiteA / subsection / .. ..

ライブサーバーテストフォルダー:www.asite.com/devbuild/subsection / .. ..

私はこれを理解しやすく、伝えやすいものにしたことを願っています。Si

4

5 に答える 5

20

してみてくださいswitch

switch (document.location.hostname)
{
        case 'asite.com':
                          var rootFolder = '/devbuild/'; break;
        case 'localhost' :
                          var rootFolder = '/mytestSiteA/'; break;
        default :  // set whatever you want
}

その後、

var root = document.location.hostname + rootFolder;
于 2012-09-04T09:01:13.320 に答える
3

これは、switch句の後に私にとってうまくいったものです。

var root = location.protocol + '//' + location.host + rootFolder;
于 2013-10-21T23:26:09.170 に答える
0

URL localhost/devbuild を localhost/mytestSiteA にマップし、最初の URL を使用してサイトをローカルでテストできます。あなたのJavaScriptでは、いつでもdevbuildフォルダーを想定できます。そうすれば、他に何も変更する必要はありません。

于 2012-09-04T08:59:13.240 に答える
-4

相対パスを使用して、ルート フォルダーにアクセスする必要がないようにする

これは、リンクにフォルダーがあるわかりやすい URL を持つサイトでは機能しません

于 2016-04-07T12:56:01.327 に答える