3

Я создал приложение MVC, используя VS Express для Интернета. Он будет использовать только встроенный CSS-файл по умолчанию, с которым поставляется VS Express.
Пример: если я изменяю файл bootstrap.css (меняю цвет jumbotron) и запускаюсь локально из VS, изменения очевидны, однако при развертывании в Интернете ни одно из этих изменений не является очевидным. Я также заметил, что когда я изменяю файл web.config на Debug = false, изменения CSS, которые я сделал, не явны, когда я запускаю его локально из VS (и при развертывании в Интернете).Изменения CSS в приложении MVC не работают

CSS все еще применяется, однако любые изменения, которые я делаю, не применяются. На сайте показан старый цвет jumbotron по умолчанию. Если я изменю debug = true в web.config, тогда jumbotron покажет мой обновленный цвет. Когда я развертываю веб-сайт на своем сайте, ни один из изменений CSS не применяется, он по-прежнему использует файл CSS по умолчанию, я даже проверил bootstrap.css на сервере, и он показывает обновленный цвет jumbotron, но jumbotron по-прежнему является стандартным цветом в Интернете ?? Супер смущает.

Я сделал много читать, попытался добавить следующее к моей web.config:

<remove name="BundleModule" /> 
<add name="BundleModule" type="System.Web.Optimization.BundleModule" /> 

но то не исправить. Я попытался удалить .css из своих имен файлов, это устранило проблему, когда я запускаю ее локально из VS с помощью debug = false, однако при публикации сайта сайт вообще не показывает стилей CSS. Это не проблема кеширования. Это как-то связано с группировкой и debug = false, но я не знаю, что. Я по-прежнему новичок в разработке web/MVC. Я обновил мою web.optimization и microsoft.aspnet и т. Д. С помощью NuGet.

У меня очень тяжело с этим, если у кого-то есть предложение, и он работает, я буду очень счастлив! В Stack Overflow есть много сообщений об этом, но ни одно из предложений пока не помогло мне.

Это мой bundle.config.cs:

using System.Web; 
using System.Web.Optimization; 

namespace HFHYYC 
{ 
     public class BundleConfig 
     { 

     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js")); 

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

      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")); 
     } 
    } 
} 
+0

Значит, вы используете комплектацию MVC? Не могли бы вы разместить: ваш BundleConfig.cs, а также код, который вы используете для включения CSS на самой странице? – br4d

+0

Я использую все из коробки на Visual studio. Я считаю, что это использует CSS на странице: @ Styles.Render ("~/Content/css") @ Scripts.Render ("~/bundles/modernizr"), и я поставлю bundle.cs на исходный вопрос .. – dave317

+0

Да, все, кажется, в порядке. Ваш CSS, вероятно, кэшируется. Если вы контролируете + R в своем браузере, он перезагружает все без кеша. Если это не работает, попробуйте перестроить проект, поскольку привязка фактически возникает каждый раз, когда запускается веб-приложение. – br4d

ответ

9

Это, вероятно, из-за рамки обвязки с использованием bootstrap.css в режиме локального/отладки и bootstrap.min.css при развертывании. В рамках фреймворка используется набор условных обозначений при определении того, какие файлы нужно добавить в пакет, один из которых - использовать версию .min для файла, если он существует, для версий релизов. Вероятно, это то, что вас кусает. Вы внесли изменения в bootstrap.css, но не в bootstrap.min.css.

Попробуйте удалить bootstrap.min.css и переустановить. Это должно заставить frameworkt минимизировать и использовать файл bootstrap.css, который вы изменили.

+0

Удалить файл bootstrap.min.css из файла проекта Visual Studio или с моего веб-сервера? – dave317

+0

Это сработало отлично! Это повлияет на производительность моего сайта? Есть ли способ заставить VS заменить файл .min на обновленный файл bootstrap.css, когда я вношу в него изменения? – dave317

+0

Или просто попробуйте переименовать его в проект VS. Он также может работать, чтобы удалить его с веб-сервера или переименовать его, а затем перезапустить пул приложений. – Peter