C#MVC本地化问题与图像URL

问题描述:

我需要建立一个本地化的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://*.com/a/32839796/)。这种方式生成URL的原因是因为在生成URL(与其他答案相同)时,您的约束始终匹配此路由。 – NightOwl888

尝试在前面加上一个/的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

使用相对路径到您网站的根目录。 尝试通过 “/” 开始你的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>