我目前正在开发一个 ASP.NET Web 应用程序,并且我的大部分开发工作都是在路上进行的,即离线。我计划为 JQuery 和其他几个脚本资源使用 Google/Microsoft/an-other CDN。
我的问题是,是否有一种直接的方法来开发解决方案中的本地文件链接,但在部署/发布构建时指向 CDN?先感谢您!
您可以编写一个辅助函数:
public static string JQuerySource()
{
var config = WebConfigurationManager.OpenWebConfiguration("~");
var compilation = config.GetSection("system.web/compilation") as CompilationSection;
if (compilation == null || compilation.Debug)
{
// Running in Debug mode
return "/scripts/jquery.js";
}
// Running in Release mode
return "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js";
}
你会这样使用:
<script type="text/javascript" src="<%=JQuerySource() %>"></script>
您可以在部署之前更改链接...?
更新:
如果您到处都有链接,那么简单的全部替换就足够了。
我知道这些可能是非常愚蠢和简单的解决方案,但在我看来,您的问题太简单了,不需要抽象或额外的代码编写。
但是,如果您必须这样做,这是一种方法:
创建一个包含值的 XML 文件:
MyAppSettings.xml
<?xml version="1.0" encoding="utf-8" ?>
<MyAppSettings>
<JqueryLink
value="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
store1="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
store2="../jquery.min.js"
>
</JqueryLink>
</MyAppSettings>
并从 XML 文件中获取值:
public static string GetJqueryUrl()
{
XElement file = XElement.Load(HttpContext.Current.Server.MapPath("~/App_Data/MyAppSettings.xml"));
string jquerylink = file.Element("JqueryLink").Attribute("value");
return jquerylink;
}
您可以为前面的代码创建一个辅助函数,并在整个代码中使用它。
每当您想在部署和离线链接之间切换时,只需更改 xml 文件中的“值”参数即可。
您可以将属性“store1”和“store2”保留在其中,这样我在切换它们时就不必记住它们是什么。