0

私は初心者ですが、この 2 日間を読書に費やしてきたので、これに関することもあるかもしれません。読めば読むほど混乱します。従うべき簡単な指示や例、またはこの非常に重要な問題の簡単で完全な答えを見つけることができません。

を使用して一般的な JavaScript ファイルをインクルードしたいだけですsrc=。次に、このツリーをサーバーにコピーするときに、コードを変更したくありません。ツリー レイアウトを変更するたびに HTML ファイルを編集したくないので、相対パスを使用したくありません。ツリーがサーバー上にあるときだけでなく、開発中に自分の PC にローカルにあるときにも機能する 1 つのソリューションが必要です。

私は高度なものや派手なものを探しているわけではありません。しかし、非常に単純な解決策です。私が望むのは、ツリーにあるすべての HTML ファイル間で共通の JavaScript ファイルを使用できるようにすることだけです。

$HOME問題は、またはまたは環境変数などを使用できないため~、自宅の PC で同じコードが機能するように、またそれを個人の Web サイトにアップロードするときに、どのようにロードするかです。 .

これに簡単に答えられるように、私の PC でのレイアウトを示します。

   C:/public_html/common_files/common.js
   C:/public_html/report/index.htm

サーバー上で、私のサイトが と呼ばれているとします。ftp でそこにアクセスwww.ABC.comすると、そこpublic_html/にすべてを配置することになっているフォルダーが表示されます。サーバー上で、上記と同じセットアップを作成しました

   /public_html/common_files/common.js
   /public_html/report/index.htm

ここまでは順調ですね。今、難しい部分です。

index.htm ファイルから common.js をロードするにはどうすればよいですか? を使いたくないのですがsrc=../../common_files/common.js、なぜですか? ツリーのレイアウトを変更したい場合があり、レポートを別のレベルに移動した場合、レポートを編集したくないので、パスを変更して "../../../../. .」など。

私は多くのことを見ましたが、ResolverURLそれを使用する方法がわかりませんでした。

私は試した

  <script src="<%=Page.ResolveUrl("~/")%>public_html/common_files/common.js"></script>

しかし、うまくいきませんでした。これは PC とサーバーで動作する必要があることを忘れないでください。

これが私の現在の index.htm です。

<!DOCTYPE HTML>
<html>
<head>            
   <script src="../common_files/common.js"></script>       
</head>
<body>
        my site    

</body>
</html>

私が探しているものを説明するために、$HOME がこの環境で動作すると仮定します。

<!DOCTYPE HTML>
<html>
<head>            
   <script src="{$HOME}/common_files/common.js"></script>       
</head>
<body>
        my site    

</body>
</html>

これは、PC とサーバーで動作します (少なくとも、Linux を使用する PC では動作します)。しかし、上記は私が探しているものの例にすぎません.Windowsでは、 $HOME がどこにあるのか、それがどのように使用されているのかわかりません。

質問: 上記を変更してsrcをロードし、common.js相対パスを使用せずに PC とサーバーの両方で動作するようにするにはどうすればよいですか?

表示するリンクや部分的な回答を提供したり、これを実行するための商用ソフトウェアや複雑な非常に高度なコマンドをダウンロードするように依頼したりしないでください。この問題は非常に基本的なものであり、解決策は簡単に理解できるはずです。

4

2 に答える 2

4

一見すると、PC 上でローカルにファイルを実行しているように見えます。サーバーの構造を複製するために、代わりにサーバーを PC にインストールしてみてください。XAMPPのようなことができます。サーバーでは、ドメインのルートはpublic_html. XAMPP セットアップでは、それがhtdocsフォルダーになります。

ファイルをそれほど移動する場合は、「styles」フォルダや「scripts」フォルダなど、ドメインのルートからの場所を検討してください。

public_html/
 '-- scripts/
 '-- styles/
 '-- everything else

次に、それらを先頭にロードします/。先頭/は、ドメインのルートからの意味です。

<link href="/styles/your.css" type="text/css">
<script src="/scripts/your.js"></script>

<!-- similar to: -->

<link href="http://yourdomain.com/styles/your.css" type="text/css">
<script src="http://yourdomain.com/scripts/your.js"></script>
于 2013-05-22T06:27:20.263 に答える
1

コメントが非常に長い会話になるのを防ぐために、いくつかの追加情報で回答しようとします.

まず、「絶対パス」という用語は、 Web ルートと比較して、ファイルの完全なパスを指します。

独立した Web サーバーなしでファイルを開く場合、Web ルートはファイルを開いたドライブのルートです (Windows では、通常ドライブ文字で始まりますが、スラッシュだけで始まることもあります)。

つまり、ドライブ全体をホスティング会社に複製しない限り (悪い考えです)、通常は Web サーバーを実行して、ファイル システムのルートではない Web ルートを提供する必要があります。

サーバー側の処理を必要としない静的ページ (html、js、css、画像など) のみを提供する場合、XAMPP (これは素晴らしい) などのソリューションはおそらくやり過ぎであることを理解しています。古いラップトップで実行しています!

私は ( Goで)単一の実行可能ファイルで構成される非常にwww単純な Web サーバーを作成しました。サイズは約 3 または 4 MB で、デフォルトで onという名前のフォルダーからすべてを提供http://localhostします。また、ポートをデフォルトの 80 から変更するためのコマンド ライン スイッチもあり、localhost. 詳細については、http: //github.com/Intermernet/sswsを参照してください。

64 ビット Windows バージョンは、 https://github.com/Intermernet/ssws/blob/master/bin/windows_amd64/ssws_windows_amd64.zip? raw= true から直接ダウンロードできます。32 ビット バージョンが必要な場合は、お知らせください。コンパイルしてアップロードし、リンクをお送りします。

これは、ローカル コンピューター (Documents\WebDev など) のどこかに保存する必要があります。その後www、同じフォルダーにフォルダーを作成し、Web サイト ファイルをそのwwwフォルダーにコピーするだけです。

exe ファイルを開始 (ダブルクリック) すると、デフォルトでサイト ファイルの提供が開始さlocalhostれます。サーバーを手動で起動したくない場合は、Startupフォルダーに入れます。

これにより、フォルダーの下のファイルを編集しwww、ブラウザーを更新して変更をすぐに確認できます。

ローカル Web サーバーなしでローカル Web 開発を行うことは可能ですが、ご存じのように、多くの落とし穴があります。

Web 開発に対する信用や信頼を失うのは見たくないので、なんとかこれが実現することを願っています。これらの「sys-admin」タスクは、実際にはプログラマーが対処したいものではありませんが、時には対処しなければならないこともあります!

また、動的なサーバー ベースのコード (PHP、Ruby、Python、Node.js など)を作成しようとする段階になると、ほぼ確実に、私の単純なサーバーを捨てて、XAMPP のようなものを使用する必要があります。

幸運を!

于 2013-05-22T09:35:26.453 に答える