development

MVC4의 스타일

big-blog 2020. 2. 26. 07:55
반응형

MVC4의 스타일


A의 .NET MVC4수행 방법 프로젝트 @Styles.Render작품을?

내 말은, @Styles.Render("~/Content/css")어느 파일 에서 전화하는거야?

Content폴더 안에 "css"라는 파일이나 폴더가 없습니다.


폴더 내의 BundleConfig클래스 내에 선언 된 특정 번들에 포함 된 파일을 호출 App_Start합니다.

이 경우에 대한 호출 @Styles.Render("~/Content/css")은 "~ / Content / site.css"를 호출합니다.

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

대소 문자 구분에주의하십시오. 파일이 있다면

/Content/bootstrap.css

Bundle.config에서 리디렉션하여

.Include ( "~ / Content / Bootstrap.css")

CSS를로드하지 않습니다.


파티에 조금 늦었 어 그러나 아무도
번들링축소언급하지 않은 것 같습니다 StyleBundle.

@Styles.Render("~/Content/css") 

전화 Application_Start():

BundleConfig.RegisterBundles(BundleTable.Bundles);            

차례로 전화

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new StyleBundle("~/Content/css").Include(
              "~/Content/bootstrap.css",
              "~/Content/Site.css"));
}

RegisterBundles()효과적으로 콤바인 및 축소하고 bootstrap.css & Site.css
하나의 파일로,

<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">

그러나 ..

<system.web>
  <compilation debug="false" targetFramework="4.6.1" />
</system.web>

에서 debug로 설정된 경우에만 해당됩니다 . 그렇지 않으면 & 는 개별적으로 제공됩니다. 번들로 제공되거나 축소되지 않았습니다.falseWeb.config
bootstrap.cssSite.css

<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">

src="@url.content("~/Folderpath/*.css")" 스타일을 렌더링해야합니다


App_start.BundleConfig에 정의 된대로

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

해당 섹션을 제거해도 아무 변화가 없습니다.


폴로 나는 여러 가지 이유로 MVC에서 번들을 사용하지 않을 것입니다. Apps_Start 폴더에서 사용자 정의 BundleConfig 클래스를 설정해야하기 때문에 귀하의 경우에는 작동하지 않습니다. 다음과 같이 HTML 헤드에 스타일을 간단하게 추가 할 수있는 경우에는 의미가 없습니다.

<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />

모든 뷰에서 호출되어 각 페이지에 놓인 Layout.cshtml 또는 부분 클래스에 추가 할 수도 있습니다. 스타일이 변경되면 다시 컴파일하지 않고도 이름과 경로를 쉽게 변경할 수 있습니다.

클래스에 CSS에 대한 하드 코딩 된 링크를 추가하면 UI와 디자인을 응용 프로그램 모델과 분리하려는 목적이 완전히 깨집니다. 더 이상 "스킨"을 만들거나 다른 장치, 테마 등을위한 별도의 스타일 모델을 만들 수 없으므로 C #에서 하드 코딩 된 스타일 시트 경로를 원하지 않습니다.

<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />

이 시스템과 Razor를 사용하면 데이터베이스 또는 사용자 설정에서 스킨 경로를 전환하고 경로를 동적으로 변경하여 웹 사이트의 전체 디자인을 변경할 수 있습니다.

15 년 전 CSS의 전체 목적은 사이트에 대한 사용자 제어 및 응용 프로그램 제어 스타일 시트 "스킨"을 개발하여 UI 모양과 느낌을 응용 프로그램과 별도로 전환하고 데이터 구조와 무관하게 내용을 재사용 할 수 있도록하는 것이 었습니다. ... 예 : 인쇄 가능한 버전, 모바일, 오디오 버전, 원시 XML 등

C # 클래스를 사용하는이 "고풍스러운"하드 코딩 된 경로 시스템, Bootstrap과 같은 엄격한 스타일 및 응용 프로그램 코드와 사이트의 테마를 병합함으로써 1998 년에 웹 사이트가 구축 된 방식으로 거슬러 올라갑니다.


MVC 3 웹에 번들링을 추가하는 데 필요한 모든 작업을 수행했습니다 (기존 솔루션을 처음 사용합니다). Styles.Render나를 위해 작동하지 않았다. 마침내 콜론이 없다는 것을 마침내 알게되었습니다. 마스터 페이지에서 : <%: Styles.Render("~/Content/Css") %>왜 여전히 같은 페이지 에서 콜론 없이<% Html.RenderPartial("LogOnUserControl"); %> 작동 하는지 혼란 스럽습니다 .

참고 URL : https://stackoverflow.com/questions/12028401/styles-render-in-mvc4



반응형