首页 新闻 会员 周边

ASP.NET Core Web项目,如何优雅的实现静态图片和动态页面使用不同的域名

0
[已解决问题] 解决于 2020-03-02 14:14

想在 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 = "从配置文件读取静态域名";

有没有更优雅更方便的方法,来实现静态图片使用不同的域名?

 

大豆男生的主页 大豆男生 | 小虾三级 | 园豆:608
提问于:2020-01-15 15:55
< >
分享
最佳答案
0

在页面注入一个对象: @inject appData

<img src="@appData.StaticDomain/images/logo.png" />

不知道,有没有更好的方法?

大豆男生 | 小虾三级 |园豆:608 | 2020-01-17 15:41
其他回答(2)
0

2种思路
1.前端js控制,引用一个公用的js,设置在页面加载完成之后 过滤每个img元素 然后给每个img 的src 增加静态域名,静态域名可通过后端获取;
2.controller 利用继承的方法,在basecontroller 里面增加共有的ViewBag.StaticDomain = "从配置文件读取静态域名"即可。
方法2没有尝试过不知道是否能用;

DNLi | 园豆:316 (菜鸟二级) | 2020-01-15 16:20

谢谢你的回复。方法二,controller里的action很多,子类的不同的action可以继承basecontroller的同一个action吗?

支持(0) 反对(0) 大豆男生 | 园豆:608 (小虾三级) | 2020-01-15 16:43
0

太多方式了,用全局过滤器也可以。 自定义一个Html帮助器方法也行

变形精怪 | 园豆:5 (初学一级) | 2020-01-16 16:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册