0x00、为什么要扩展
因为我的服务器是小水管,加载一个完整的网站往往需要很久,想加速网站加载速度,静态文件最好是分离出来,所有就想到了扩展UrlHelper,用来支持CDN加载文件。
0x01、论引用静态文件的几种方法
以 jquery-1.11.0.min.js 为例,一般常用的有以下两种(我自己的情况)
<script src="~/Content/themes/plugins/jQuery/jquery-1.11.0.min.js"></script>
<script src="@Url.Content("~/Content/themes/plugins/jQuery/jquery-1.11.0.min.js")"></script>
@Url.Content("") 形式是UrlHelper的方法,我们今天就来扩展它
0x02、扩展的代码
新建一个UrlHelperExtensions 类
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
using System;using System.Collections.Generic;using System.Configuration;using System.Linq;using System.Web;using System.Web.Mvc;namespace Chenmo.Soft.WebUI.Framework{ public static class UrlHelperExtensions { /// <summary>CSS cdn /// /// </summary> /// <param name="helper"></param> /// <param name="contentPath"></param> /// <returns></returns> public static string CdnCssContent(this UrlHelper helper, string contentPath) { return GetContent(helper, contentPath, "CSS"); } /// <summary>JS cdn /// /// </summary> /// <param name="helper"></param> /// <param name="contentPath"></param> /// <returns></returns> public static string CdnJsContent(this UrlHelper helper, string contentPath) { return GetContent(helper, contentPath, "JS"); } /// <summary>img cdn /// /// </summary> /// <param name="helper"></param> /// <param name="contentPath"></param> /// <returns></returns> public static string CdnImgContent(this UrlHelper helper, string contentPath) { return GetContent(helper, contentPath, "IMG"); } private static string GetContent(this UrlHelper helper, string contentPath, string type) { var result = helper.Content(contentPath); if (ConfigurationManager.AppSettings[$"CDN_{type}_Enable"].ToUpper() == "TRUE") { result = ConfigurationManager.AppSettings[$"CDN_{type}_URL"] + contentPath.TrimStart('~'); } return result; } }} |
同时在web.config 中的appSettings节点添加一下配置
|
1
2
3
4
5
6
7
8
9
|
<!--是否开启CDN True False--><add key="CDN_CSS_Enable" value="True" /><add key="CDN_CSS_URL" value="http://css.static.ofnhkb1.com" /><add key="CDN_JS_Enable" value="True" /><add key="CDN_JS_URL" value="http://js.static.ofnhkb1.com" /><add key="CDN_IMG_Enable" value="True" /><add key="CDN_IMG_URL" value="http://img.static.ofnhkb1.com" /> |
0x03、扩展的使用
直接在页面上@Url.CdnCssContent("") or @Url.CdnJsContent("") or @Url.CdnImgContent("") 即可,如图是我的页面引用


0x04、效果

0x05、CDN/OSS设置
这里提一点,把回源地址设置为主站的地址,这样当cdn找不到文件的时候,会自动从主站拉取文件
建议把防盗链Referer给打开,并设置好
写得不好,请各位多多指教
转自:http://Www.CnBlogs.Com/WebEnh/
如果想下次快速找到我,记得点下面的关注哦!
| 本博客Android APP 下载 |
![]() |
| 支持我们就给我们点打赏 |
![]() |
| 支付宝打赏 支付宝扫一扫二维码 |
![]() |
| 微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!




浙公网安备 33010602011771号