想在 ASP.NET Core Web项目中,实现静态图片和动态页面使用不同的域名。
现在页面里图片是这样的:<img src="~/images/logo.png" />
打算改成:<img src="@ViewBag.StaticDomain/images/logo.png" />
然后,在每个Action里给ViewBag.StaticDomain赋值,
即:ViewBag.StaticDomain = "从配置文件读取静态域名";
但,这样要把所有的Controller里的所有的Action都加上一句 ViewBag.StaticDomain = "从配置文件读取静态域名";
有没有更优雅更方便的方法,来实现静态图片使用不同的域名?
在页面注入一个对象: @inject appData
<img src="@appData.StaticDomain/images/logo.png" />
不知道,有没有更好的方法?
2种思路
1.前端js控制,引用一个公用的js,设置在页面加载完成之后 过滤每个img元素 然后给每个img 的src 增加静态域名,静态域名可通过后端获取;
2.controller 利用继承的方法,在basecontroller 里面增加共有的ViewBag.StaticDomain = "从配置文件读取静态域名"即可。
方法2没有尝试过不知道是否能用;
谢谢你的回复。方法二,controller里的action很多,子类的不同的action可以继承basecontroller的同一个action吗?
太多方式了,用全局过滤器也可以。 自定义一个Html帮助器方法也行