A의 .NET MVC4
수행 방법 프로젝트 @Styles.Render
작품을?
무슨 @Styles.Render("~/Content/css")
파일로 부르고 있습니까?
내 Content
폴더 안에 "css"라는 파일이나 폴더가 없습니다.
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"));
*.min.*
인수 *.*
합니다.
대소 문자 구분에주의하십시오. 파일이 있다면
/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
로 설정된 경우에만 해당됩니다 .
그렇지 않으면 & 는 개별적으로 제공됩니다.
번들로 제공되거나 축소되지 않았습니다.false
Web.config
bootstrap.css
Site.css
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
폴로 나는 여러 가지 이유로 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 년 웹 사이트 구축 방식으로 거슬러 올라갑니다.
minification
그때 까지 도대체 ? : s / :(
MVC 3 웹에 번들링을 추가하는 데 필요한 모든 작업을 수행했습니다 (기존 솔루션을 처음 사용합니다). Styles.Render
나를 위해 작동하지 않았다. 마침내 콜론이없는 것을 발견했습니다. 마스터 페이지에서 : <%: Styles.Render("~/Content/Css") %>
왜 여전히 같은 페이지 에서 콜론 없이<% Html.RenderPartial("LogOnUserControl"); %>
작동 하는지 혼란 스럽습니다 .