我有一个 Windows Azure 应用程序。当我在本地运行时,我想从本地版本的 jQuery 运行。在 Microsoft 服务器上运行时,我想使用 Google CDN。
根据我的应用程序是在本地运行还是在 Azure 服务器上运行,我的 razor 视图是否有一种在本地和 CDN 版本之间切换的好方法?
我有一个 Windows Azure 应用程序。当我在本地运行时,我想从本地版本的 jQuery 运行。在 Microsoft 服务器上运行时,我想使用 Google CDN。
根据我的应用程序是在本地运行还是在 Azure 服务器上运行,我的 razor 视图是否有一种在本地和 CDN 版本之间切换的好方法?
内容交付网络 (CDN) 可用于将内容卸载到全球分布式服务器网络,从而确保为最终用户提供更快的吞吐量。
所以 CDN 就是把数据尽可能靠近用户,我不确定 Google CDN 是如何工作的,但如果它像 Azure,那么你需要将你的内容放入 CDN 并获取内容的 URL . 然后,在您的 Web 应用程序中,指向 Google CDN URL 以通过 CDN 在地理上提供上下文。
查看这篇博客文章,了解 Azure 的“使用 Windows Azure 内容交付网络”是如何工作的。
您应该能够使用相同的方法,但替换为 Google CDN 位置?
您可以添加一个新的助手:
@helper ScriptPath(string path)
{
<script src="@fnScriptPath(path)" type="text/javascript"></script>
}
@functions
{
static string fnScriptPath(string path)
{
if (Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.IsEmulated)
return "/Scripts/" + path;
else
return "http://ajax.aspnetcdn.com/ajax/jQuery" + path;
}
}
那么您的页面将具有:
@ScriptHelper.ScriptPath("jquery-1.7.1.js")
例如。
重要提示:为此,您的参考资料中的 Microsoft.WindowsAzure.ServiceRuntime 程序集需要将 Copy Local 设置为 true。我还必须关闭并重新打开解决方案以进行更改(而不仅仅是构建);否则,Microsoft.WindowsAzure.ServiceRuntime 无法解析。