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。
所有的作品都很棒。
默认网址:
当语言改为德文其路由到
很好。
我遇到的问题是图像。
以下行
<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
任何帮助,将不胜感激。
感谢, 万盎司
答
使用相对路径到您网站的根目录。 尝试通过 “/” 开始你的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>
参见[ASP .NET MVC 5文化中的路由和URL](https://stackoverflow.com/a/32839796/)。这种方式生成URL的原因是因为在生成URL(与其他答案相同)时,您的约束始终匹配此路由。 – NightOwl888