У меня проблема с моим проектом MVC.Не удается получить CDN, работающий должным образом.Я сделал следующее: - предоставил CDN на веб-сайте Azure (https://mycoolcdn.azueedge.net) - обновлен файл BundleConfig.cs, чтобы он указывал на CDN; - обновлен файл web.config с адресом CDN и флагом UseCDN, поэтому BundleConfig выглядит так:как показано ниже:
public static class BundleConfig
{
public static string HostingEnvironment = ConfigurationManager.AppSettings["HostingEnvironment"];
public static void RegisterBundles(BundleCollection bundles)
{
bundles.UseCdn = Convert.ToBoolean(ConfigurationManager.AppSettings["CdnEnabled"]);
if (HostingEnvironment == "DEV")
{
bundles.IgnoreList.Clear();
bundles.Add(
new StyleBundle(CreateVirtualPath("/Bundles/App/vendor/css"), CreateCdnPath("/Bundles/App/vendor/css"))
.Include("~/Scripts/toastr/toastr.min.css", new CssRewriteUrlTransform())
.Include("~/Scripts/sweetalert/dev/sweetalert.css", new CssRewriteUrlTransform())
.Include("~/Content/flags/famfamfam-flags.css", new CssRewriteUrlTransform())
.Include("~/Scripts/font-awesome/css/font-awesome.min.css", new CssRewriteUrlTransform())
.Include("~/Scripts/simple-line-icons/css/simple-line-icons.css", new CssRewriteUrlTransform())
.Include("~/Scripts/bootstrap/dist/css/bootstrap.min.css", new CssRewriteUrlTransform())
.Include("~/Scripts/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css", new CssRewriteUrlTransform())
.Include("~/Scripts/bootstrap-table/src/bootstrap-table.css", new CssRewriteUrlTransform())
.Include("~/Scripts/angular-ui-grid/ui-grid.min.css", new CssRewriteUrlTransform())
.Include("~/Scripts/ng-sortable/dist/ng-sortable.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/plugins/fullcalendar/fullcalendar/fullcalendar.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/plugins/jqvmap/jqvmap/jqvmap.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/css/plugins-md.min.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/css/components.min.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/css/components-md.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/css/fonts.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/layouts/layout4/css/layout.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/layouts/layout4/css/themes/default.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/layouts/layout4/css/custom.min.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/plugins/jquery-nestable/jquery.nestable.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/css/plugins.min.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/css/plugins/owl-carousel/owl.carousel.css", new CssRewriteUrlTransform())
.Include("~/Content/assets/global/plugins/typeahead/typeahead.css", new CssRewriteUrlTransform())
);
bundles.Add(
new StyleBundle(CreateVirtualPath("/Bundles/jquery"), CreateCdnPath("/Bundles/jquery"))
.Include(
"~/Scripts/jquery/dist/jquery.min.js"
));
BundleTable.EnableOptimizations = true;
}
//CDN methods implementation
private static string CreateVirtualPath(string path)
{
return $"~{path}";
}
private static string CreateCdnPath(string path)
{
string CdnURL = ConfigurationManager.AppSettings["CdnURL"];
return $"{CdnURL}{path}";
}
}
Проблема двоякая. Несмотря на то, что для параметра debug установлено значение False и UseCDN = true, файлы на локальном хосте продолжают поступать с локального хоста.проверить решение локально? Вторая проблема, я не уверен, что ссылки на CDN верны. В моем случае приложение будет искать файлы в 'https://mycoolcdn.azueedge.net//Bundles/App/vendor/css', тогда как фактические значения различаются (в зависимости отресурс), как вы можете видеть из кода. Какой правильный подход здесь для больших пакетов со смешанными ссылками?