반응형

1. 솔루션 루트의 .vs/config/applicationhost.config 파일로 진입한다.

2. <sites> 영역 중 본인이 작업 중인 site 내에 virtualDirectory 추가한다.

        <sites>
            <site name="WebSite1" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation=":8080:localhost" />
                </bindings>
            </site>
            <site name="WebSite2" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="e:\Users\myproject" />
                    <virtualDirectory path="/가상URL1" physicalPath="d:\... 실제경로" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:5610:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
            <virtualDirectoryDefaults allowSubDirConfig="true" />
        </sites>
반응형
반응형

사용된 모델

@model IEnumerable<모델클래스명>

 

실제 출력 코드

var grid = new WebGrid(Model, canPage: true, rowsPerPage: 2, canSort: false);
grid.Pager(WebGridPagerModes.NextPrevious);
@grid.GetHtml(
  tableStyle: "boardTable", 
  columns: grid.Columns(
    grid.Column("SEQ", Html.DisplayNameFor(m => m.SEQ).ToString(), style: "bbsNumber"),
    grid.Column("TITLE", Html.DisplayNameFor(m => m.TITLE).ToString(), style: "bbsTitle"),
    grid.Column("USER_NAME", Html.DisplayNameFor(m => m.USER_NAME).ToString(), style: "bbsHit"),
    grid.Column("REG_DATE", Html.DisplayNameFor(m => m.REG_DATE).ToString(), style: "bbsDate")
  )
)

 

페이지네이션만 출력 (스타일 변경예시 포함)

var pager = grid.Pager().ToString();
var newPager = System.Text.RegularExpressions.Regex.Replace(pager, "(( \\d)|(\\d )|(<a([^a]*|a[^>])*a>))", "<span>$1</span>");
@(new HtmlString(newPager))
반응형
반응형

서론

웹 사이트 개발을 하다보면 정적 콘텐츠들이 많이 생기게 된다.
웹 사이트의 특성상 많은 정적 콘텐츠들을 요청하게 되면 그만큼 속도가 느려지게 된다.
해당 글은 AjaxMin을 활용하여 정적 콘텐츠들을 경량화시켜 웹 사이트의 속도를 향상시킬 수 있는 방법을 설명하였다.

참고 : AjaxMin은 경량화가 목적이지 머지(병합)의 목적이 아니다. 
        닷넷프레임워크는 기본적으로 번들이라는 기능을 제공하여 설정에 따라 머지가 자동적으로 이루어 진다.

내용

1. NuGet Package Manager를 통해 AjaxMin을 설치한다.
   Install-Package AjaxMin


2. 프로젝트를 언로드한다.


3. 프로젝트명.csproj를 열어서 아래와 같이 수정한다.

   <Project> 영역의 마지막에 AfterBuild 코드를 추가한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  <UsingTask TaskName="AjaxMin" AssemblyFile="$(SolutionDir)packages\AjaxMin.5.14.5506.26202\tools\net40\AjaxMinTask.dll" />
  <Target Name="AfterBuild">
    <PropertyGroup>
      <DestinationPath>$(ProjectDir)publish</DestinationPath>
    </PropertyGroup>
    <ItemGroup>
      <JS Include="**\*.js" Exclude="publish\**\*.js;obj\**\*.js" />
      <CSS Include="**\*.css" Exclude="publish\**\*.css;obj\**\*.css" />
    </ItemGroup>
    <Copy SourceFiles="@(JS)" DestinationFiles="@(JS -> '$(DestinationPath)\%(RecursiveDir)%(Filename)%(Extension)')" Condition="'%(Extension)'=='.js'">
      <Output ItemName="JavaScriptFiles" TaskParameter="DestinationFiles" />
    </Copy>
    <Copy SourceFiles="@(CSS)" DestinationFiles="@(CSS -> '$(DestinationPath)\%(RecursiveDir)%(Filename)%(Extension)')" Condition="'%(Extension)'=='.css'">
      <Output ItemName="CssFiles" TaskParameter="DestinationFiles" />
    </Copy>
    <AjaxMin JsSourceFiles="@(JavaScriptFiles)" JsSourceExtensionPattern="\.src.js$" JsTargetExtension=".js"
              CssSourcefiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".css"></AjaxMin>  
  </Target>


4. 프로젝트를 다시 로드하고 빌드를 해보면 위에서 설정한 디렉토리에 경량화가 된 정적 콘텐츠들을 확인할 수 있다. 

반응형

+ Recent posts