2017-10-11 51 views
1

我需要建立一個本地化的C#MVC門戶網站。C#MVC本地化問題與圖像URL

我有以下途徑定義:

routes.MapRoute(
name: "DefaultLocalized", 
url: "{lang}/{controller}/{action}/{id}", 
constraints: new { lang = @"(\w{2})|(\w{2}-\w{2})" }, // en or en-US 
      defaults: new { controller = "Home", action = "Index", id = 
UrlParameter.Optional } 
); 

還實施了LocalizedControllerActivator。

所有的作品都很棒。

默認網址:

http://test

http://test/about ...

當語言改爲德文其路由到

http://test/de

http://test/de/about ...

很好。

我遇到的問題是圖像。

以下行

<img src="media/images/backgrounds/bg.jpg" alt="Smiley face" height="42" 
width="42"> 

它會解析爲http://test/de/media/images/backgrounds/aria_bg3.jpg

我想簡單地使用

http://test/media/images/backgrounds/bg3.jpg 

而忽視了語言的字符串一起

還是我想要有不同的結構,如

http://test/media/de/images/backgrounds/bg3.jpg 

任何幫助,將不勝感激。

感謝, 萬盎司

+1

參見[ASP .NET MVC 5文化中的路由和URL](https://stackoverflow.com/a/32839796/)。這種方式生成URL的原因是因爲在生成URL(與其他答案相同)時,您的約束始終匹配此路由。 – NightOwl888

回答

1

嘗試在前面加上一個/的SRC。它會給你的基本路徑。因此,例如

如果thats/a/test下URL https://www.google.com/images解決,產生的URL會https://www.google.com/images/thats/a/test,但是當你用/thats/a/test,產生的URL會https://www.google.com/thats/a/test

我認爲這會解決您的問題。

+0

謝謝偉大的作品 – Mozzak

+0

沒問題,很高興我可以幫助你 – Twometer

1

使用相對路徑到您網站的根目錄。 嘗試通過 「/」 開始你的attribut 「SRC」,像這樣:

<img src="/media/images/backgrounds/bg.jpg" alt="Smiley face" height="42" width="42"> 

另一個解決方法是在你的網頁的頭部使用html base tag,像這樣:

<head> 
    <base href="http://test/" target="_blank"> 
</head>