2011-10-31 48 views
0

我覺得這是個問題,但我無法弄清楚..我發現了幾個帖子(here's one)說,要從你的網站的根目錄使用相對路徑,與/,前開始的路徑:從網站根目錄的相對路徑

<img src="/images/img1.jpg" /> 

我的文件票數。貌似

-root 
    -images 
    -css 
    -index.aspx 
    -subFolder 
    -test.aspx 

現在,當我使用src路徑如上圖所示,它並沒有在任何的Index.aspx或Test.aspx的工作,但是當我刪除/,它適用於的Index.aspx。在test.aspx中,我使用../images/img1.jpg,它的工作原理。是什麼賦予了?爲什麼我上面的例子不起作用?

+0

這是來自Visual Studio,還是實際部署? –

+0

當項目通過VS –

+0

在本地啓動時,那麼當您運行它時,Web瀏覽器中的URL看起來像什麼?我可能會想到別的東西,但我記得有時VS有時會插入一個額外的目錄。給我適合。 –

回答

1

您的網站可能是在一個虛擬目錄,因此,「/」指的是實際的Web根目錄爲IIS(或任何Web服務器)看到它 - 也許是文件夾「根」文件夾

以上。

+0

謝謝,是的,就是這樣。爲什麼會這樣做?上面的文件夾是我所有VS2008項目所在的「網站」。這意味着當我部署到服務器時,我將不得不更改所有路徑!你知道有沒有辦法在VS中配置'root'文件夾? –

+0

我不從VS運行網站,所以我不知道。但我不這麼認爲。我在XP上使用IIS 5,因此只有一個根(或「默認」)站點。其他任何東西都必須是虛擬的 - 這很糟糕,因爲這不是如何在「真正」的網絡服務器上生產。我在內存中保留了一個'rootFolder'字符串,我將它們放在任何地方。 dev的值爲'/ root',生產的值爲'/'。痛苦,但它的作品。 – Ray

+0

哦,我現在得到關於虛擬目錄的..它實際上並沒有去到'root'的父文件夾。我可以通過在解決方案資源管理器中選擇網站並在屬性面板中將'Virtual Path'更改爲'/'來改變根目錄:)再次感謝! –

1

相對路徑因爲它們遍歷基於位置的目錄而工作,因此對於index.aspx,它需要進入images文件夾並獲取img1.jpg,對於test.aspx,它需要上升一級。然後進入images文件夾並獲取img1.jpg。

絕對路徑的基礎是基於IIS設置安裝應用程序。如果您只是從該文件夾測試此文件夾,則您的絕對路徑需要包含根文件夾。 /root/images/img1.jpg,然後它將從測試和索引中以相同的絕對路徑工作。