2008-12-10 70 views
0

我正在使用的網站是在經典ASP中完成的,我試圖儘可能地做到這一點。我將它伸到一個Rails般的目錄結構:經典ASP Server.MapPath不能正常工作

 
app_name 
- app 
    - includes 
    - helpers 
    - lib 
    - partials 
    - public 
    - stylesheets 
    - images 
    - javascripts 

我已經創造了一些Rails的助手一樣,例如:

Function ImageTag(ByVal imageFileName, ByVal altText) 
    path = Server.MapPath(IMAGE_ROOT & imageFileName & ".jpg") 
    ImageTag = "<img src=""" & path & """ title=""" & altText & """ alt=""" & altText & """ />" 
End Function 

這也是正是如此使用:

<%= ImageTag("my_pic") %> 

在配置文件中將「IMAGE_ROOT」定義爲「../public/images/」。我在XP上進行開發,因此該站點被設置爲虛擬目錄。但是,圖片不會在網頁上加載。它顯示了正確的路徑,因爲我可以將它複製/粘貼到瀏覽器中並查看圖像 - 由於某種原因它不會顯示在頁面上。同樣的事情發生在我的CSS樣式表上 - 路徑是正確的,但頁面根本沒有渲染它。

有什麼建議嗎?

+0

爲什麼你將相對路徑映射到物理路徑,當然你只需要使用`IMAGE_ROOT&imageFileName&「.jpg」`而不需要`Server.MapPath()`? – Lankymart 2014-01-09 13:58:37

回答

-1

解決這些類型問題時使用的優​​秀工具是Fiddler。它會直接顯示您的網絡瀏覽器和服務器之間的呼叫和響應。它可以與IE瀏覽器一起使用,FireFox支持只是一個配置設置。

I'ver個人使用Fiddler來追蹤圖像加載問題,CSS問題,緩存問題,重定向錯誤,甚至用它來篡改URL變量以嘗試破解/黑客入侵我的網站。

Fiddler Website

0

- 它是否與生成的html有關?
- 您可能想嘗試將IMAGE_ROOT設置爲絕對路徑,如「/ public/images」而不是相對路徑(如果可能)。
- 你也可以看看IIS日誌,看看你是否得到了圖像和CSS文件的404錯誤。

3

你可能會遇到混合服務器端和Web目錄的問題。

Server.MapPath會給你C:\InetPub\...\public\images\my_pic.jpg時,你可能想/public/images/my_pic.jpg。瀏覽器無法從您的服務器中獲取第一個。

該圖片必須可供您通過您的域名:localhost/public/images/my_pid.jpg


我假設,既然你可以查看圖像,你正在開發的託管它的同一個盒子?如果是這種情況,您可以查看圖像,因爲它只是由瀏覽器打開爲本地文件。其他人都必須使用僅限HTTP。

0

如果APP_NAME /應用程序是你的IIS站點的根目錄,那麼你必須在APP_NAME /應用程序在你的IIS站點的虛擬目錄。由於它只是靜態內容,因此您無需執行.asp腳本的權限。