Проблеми със стила на Jquery Datatable при публикуване (възможно проблем с групирането)

Сблъсквам се с някои странни проблеми, когато се опитвам да публикувам моето уеб приложение ASP.net MVC на моите тестови сървъри IIS. Реших, че това може да има нещо общо с пакета. В моето приложение използвам jquery datatable за показване на данни в реално време от db на потребителя. Когато стартирам приложението чрез дебъгера vs2013, приложението изглежда и работи добре. Въпреки това, когато публикувам в IIS на тестовия сървър, стилът на таблицата с данни изглежда изчезва (изглежда функционалността на таблицата все още работи).

Добавих:

BundleTable.EnableOptimizations = true;

и промени web.config така

<compilation debug="false" targetFramework="4.5" />

Ето моята конфигурация за групиране:

public static void RegisterBundles(BundleCollection bundles)
    {
        BundleTable.EnableOptimizations = true;

        bundles.Add(new ScriptBundle("~/bundles/CustomJqueryBundle").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery-ui-{version}.js",
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate"));

        bundles.Add(new ScriptBundle("~/bundles/CustomJqueryDataTable_Scripts").Include(
                    "~/Content/DataTables-1.10.5/DataTables-1.10.5/media/js/jquery.dataTables.js",
                    "~/Content/DataTables-1.10.5/DataTables-1.10.5/extensions/Responsive/js/dataTables.responsive.js"));

        bundles.Add(new ScriptBundle("~/bundles/CustomJqueryDataTable_Styles").Include(
                    "~/Content/DataTables-1.10.5/DataTables-1.10.5/media/css/jquery.dataTables.css",
                    "~/Content/DataTables-1.10.5/DataTables-1.10.5/extensions/Responsive/css/dataTables.responsive.css"));

        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate*"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));

        bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/site.css"));
    }

и тук е мястото, където изобразявам скриптовете с данни в _layout

@Scripts.Render("~/bundles/CustomJqueryBundle", "~/bundles/bootstrap", "~/bundles/CustomJqueryDataTable_Scripts")
@Styles.Render("~/bundles/CustomJqueryDataTable_Styles")
@RenderSection("scripts", required: false)

Също така си струва да се отбележи, че стиловете по подразбиране на mvc все още изглежда работят правилно

Чрез програмата за отстраняване на грешки (с коментар BundleTable.EnableOptimizations = true) въведете описание на изображението тук

При публикуване (или чрез дебъгер с BundleTable.EnableOptimizations = true НЕ е коментирано) въведете описание на изображението тук

Току-що се опитах да направя следното, вместо да използвам scripts.render и приложението публикува със стиловете, доказвайки, че това е проблем с групирането:

<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/bootstrap.js"></script>
<script src="~/Scripts/respond.js"></script>
<script src="~/Content/DataTables-1.10.5/DataTables-1.10.5/media/js/jquery.dataTables.js"></script>
<link href="/bg~/Content/DataTables-1.10.5/DataTables-1.10.5/media/css/jquery.dataTables.css" rel="stylesheet" />
<link href="/bg~/Content/DataTables-1.10.5/DataTables-1.10.5/extensions/Responsive/css/dataTables.responsive.css" rel="stylesheet" />
<script src="~/Content/DataTables-1.10.5/DataTables-1.10.5/extensions/Responsive/js/dataTables.responsive.js"></script>


@RenderSection("scripts", required: false)

person Validbit    schedule 26.02.2015    source източник


Отговори (1)


Групирахте вашия CSS като JS скриптове (ScriptBundle) вместо CSS (StyleBundle) - имате нужда от:

 bundles.Add(new StyleBundle("~/bundles/CustomJqueryDataTable_Styles").Include(
                "~/Content/DataTables-1.10.5/DataTables-1.10.5/media/css/jquery.dataTables.css",
                "~/Content/DataTables-1.10.5/DataTables-1.10.5/extensions/Responsive/css/dataTables.responsive.css"));

Така че ще се третира като CSS, а не като JS скрипт по време на процеса на оптимизация

person Carl    schedule 26.02.2015
comment
О, боже, неудобно ми е, но много ви благодаря, че разбрахте това. Започвах да полудявам. - person Validbit; 26.02.2015