У меня возникли некоторые странные проблемы, когда я пытаюсь опубликовать свое веб-приложение ASP.net MVC на своих тестовых серверах IIS. Я решил, что это может иметь какое-то отношение к комплектации. В моем приложении я использую jquery datatable для отображения данных в реальном времени из db для пользователя. Когда я запускаю приложение через отладчик vs2013, приложение выглядит и работает хорошо. Однако, когда я публикую IIS тестового сервера, стиль datatable, похоже, исчезает (функциональность таблицы все еще работает).Проблемы со стилем JQuery Datatable при публикации (возможно, проблема с пакетом)
Я добавил:
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"));
}
и здесь, где я Отрендерьте datatable-скрипты в _layout
@Scripts.Render("~/bundles/CustomJqueryBundle", "~/bundles/bootstrap", "~/bundles/CustomJqueryDataTable_Scripts")
@Styles.Render("~/bundles/CustomJqueryDataTable_Styles")
@RenderSection("scripts", required: false)
Его также стоит отметить, что стили по умолчанию MVC до сих пор, кажется, работают правильно
через отладчик (с BundleTable.EnableOptimizations = истина закомментирована)
Когда опубликованы (или через отладчик с BundleTable. EnableOptimizations = true NOT commented out)
Я также просто попытался сделать следующее вместо использования скриптов.render и приложение опубликовано со стилями, pr внимание переходит, что это вопрос комплектации:
<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="~/Content/DataTables-1.10.5/DataTables-1.10.5/media/css/jquery.dataTables.css" rel="stylesheet" />
<link href="~/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)
О, черт возьми, я смущен, но большое вам спасибо за то, что поймал это. Я начинал сходить с ума. – Validbit