我們有一個多語言網站,或文化敏感的,一些靜態內容現在需要針對性;爲此,我使用主題,因爲它似乎達到我想要的最簡單的方法,但我不能爲我的生活讓圖像拾起。ASP.NET主題以編程方式:圖片路徑
我在代碼隱藏中設置主題,起初認爲可能是這個問題,但在檢查時,它看起來像我正在做正確的事情(設置在Pre-Init
)。
我希望能夠引用使用相對路徑,其中App_Themes/ThemeName/
會自動解決,如圖像,:
<asp:Image runat="server" ImageUrl="images\image.jpg"/>
無論出於何種原因,但是,圖像不被通過拉可言。
這是我們已有的代碼來設置主題(唯一真正相關的部分,我敢肯定,作爲Theme = CurrentSite.CultureName
,這是成功應用):
Private Sub SetTheme()
Dim themesPath = Server.MapPath("~/App_Themes")
If Directory.Exists(themesPath) Then
Dim themePaths = Directory.GetDirectories(themesPath)
Dim themePathInfo As DirectoryInfo
For Each _path In themePaths
themePathInfo = New DirectoryInfo(_path)
If Not themePathInfo Is Nothing Then
If themePathInfo.Name = CurrentSite.CultureName Then
Theme = CurrentSite.CultureName
Exit For
End If
End If
Next
End If
End Sub
在上面的代碼, CurrentSite.CultureName
將是一個語言文化名稱(例如,en-gb或nn-no),它具有包含所有必需資源的現有相應主題文件夾。
頁面確實有EnableTheming
設置爲True
。另外,我嘗試刪除主題設置代碼並在頁面中使用Theme="en-gb"
無效。
有沒有什麼立即明顯的爲什麼網址沒有解決?
對於每個圖像?這是我主要關心的問題,因爲有些圖像是根據數據實時生成的。 – 2011-03-21 13:43:14
好的 - 更新了我的答案。 – 2011-03-21 13:55:20
感謝您的回答;這是我所推遲的,但看起來可能是唯一的解決方案 - 至少暫時是這樣。 – 2011-03-23 21:38:33