0

申し訳ありません。この質問に別の回答がありましたが、いくつかのページを検索しようとして失敗しました。インクルードファイルの相対パス - ASP/HTML

私はすべてのページで使用しているインクルードファイル(サイドバー)を持っています。 sidebar.asp内部の今

Default.asp 
Products.asp 
Salary/Survey.asp 
inc/sidebar.asp (this is the included file) 

私はルートレベルの他のすべてのページからSalary/Survey.asp

のリンクを持って、私は単にhref='Salary/Survey.asp'を使用することができますし、正常に動作します。しかし私がページSurvey.aspにいるとき、href='Salary/Survey.asp'を書くことは実際にSalary/Salary/Survey.aspになるでしょう。正しく使用するには../Salary/Survey.aspでなければならないと理解していますが、ルートレベルのページでは機能しません。私は他人のプロジェクトのために働いていると私は彼のディレクトリ構造を知らないので、私は唯一のdocument relativeパスのオプションを持っているよう/Default.asp/Salary/Survey.aspあるroot relativeを使用することはできません

これは分かりやすく、誰かが私を助けてくれることを願っています。

ありがとうございます!

答えて

2

我々はこの問題に以下の方法を解く...

  1. は、当社のASPページのそれぞれは、を暗くするとgolbal変数を設定することを特別なファイルが含まれています。我々は
  2. すべてのASPページは応じて相対パスを設定する "
    strRelativePath =" strRelativePath
    薄暗いstrRelativePathという変数を定義しInfo.asp内部Info.asp
  3. 我々と呼ばれますその相対位置に:

たとえば、

  • ルートページ - strRelativePath = ""
  • つのレベルの深ページ - strRelativePath =」../「
  • 2つのレベルの深ページ - strRelativePath =」../../」

そして、それは<% = strRelativePath%>

で相対パスを必要とするすべてのリンクを巻頭の問題でした
0

基本的に、あなたのサイドバーを別のフォルダのプログラムから含めることができれば、あなたが言及したような絶対パスを使うのが簡単な方法です。

  • 仮想フォルダ...あなたはそれを使用することはできませんと言うので、私は別の方法を考えるでしょう:IISであなたは「給与」のため給与フォルダ内の仮想フォルダを設定する可能性があり、それを指し示しますサイトのルート。
  • OSリンク(上記と同様ですが、OSレベルで)
  • mapathを使用してください。 mappathをチェックして実際のフォルダを確認し、正しいインクルード(with/without/salary)を使用することができますが、これはあなたに間違いを与えるかもしれないと思っています。
1
you need to get write this after the that - Salary/Survey.asp 
You can get the virtual path to the file from one of several server variables - try either: 

Request.ServerVariables("PATH_INFO") 
Request.ServerVariables("SCRIPT_NAME") 

サーバー変数のどちらかは、あなたのいずれかのサブディレクトリとファイル名を含む仮想パスを与えるだろう - あなたの例を考えると、あなたは/virtual_directory/subdirectory/file.aspを得るでしょうあなただけの仮想ディレクトリをしたい場合は、あなたがオフに取り除く必要があります。 2番目のフォワードスラッシュの後のすべては、あなたのパスからディレクトリを抜き出すのが好きです。

s = Request.ServerVariables("SCRIPT_NAME") 
i = InStr(2, s, "/") 
If i > 0 Then 
    s = Left(s, i - 1) 
End If 
or: 

s = "/" & Split(Request.ServerVariables("SCRIPT_NAME"), "/")(1) 
+0

ありがとうございました。私はJatinの方法が好きでしたが、私も同じような思考が私の心の中にあったので、私はCape Cod Gunnyの答えを使って励ましました。すべての助けにもう一度感謝します。 – user704988