수업 소개
이번 시간에는 에플리케이션에서 사용하는 파일을 다루는 방법에 대해서 알아본다. 그 과정에서 twitter bootstrap을 적용하는 방법도 함께 살펴본다.
파일
웹에플리케이션에서 파일은 크게 두가지 용도로 구분 할 수 있다. 하나는 에플리케이션에서 사용하는 CSS/JavaScript 파일이나 버튼에서 사용하는 이미지와 같은 에플리케이션 파일과 사용자가 업로드 한 사용자 파일이다.
CI와 파일
CodeIgniter에서 파일을 사용하기 위해서는 특별한 것은 없고 CI의 root 디렉토리에 파일을 위치시키면 된다. 그런데 이렇게 하면 파일을 관리하는 것이 어렵기 때문에 필자의 경우 static이라는 디렉토리를 만들고 그 하위에 파일의 종류에 따른 디렉토리를 구성하고 있다.
예를들어 css 디렉토리 하위의 style.css 파일에 접근하려면 아래와 같이 URL을 사용하면 된다.
http://ooo2.org/static/css/style.css
Twitter Bootstrap
twitter bootstrap를 예제에 적용시키는 방법을 통해서 파일을 사용하는 법을 알아보자. twitter bootstrap에 대한 자세한 사용법은 twitter bootstrap 수업을 참고하자.
bootstarp를 적용하기 하기 위해서 CI의 루트디렉토리에 static/lib 디렉토리를 만들자. 그리고 lib 디렉토리에 twitter bootstrap를 다운받아서 위치시키자. (bootstarp 다운로드 페이지로 바로가기)
다음과 같은 구조가 되면 된다. 나머지 자세한 설명은 동영상을 참고하자.
예제
application/views/head.php
차이점이란? 기존의 코드와의 차이점을 부각시키기 위해서 차이점을 캡처했다. 달라진 부분은 붉은 색으로 표시된다.
차이점
전체코드
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Bootstrap --> <link href="/static/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen"> <style> body{ padding-top:60px; } </style> <link href="/static/lib/bootstrap/css/bootstrap-responsive.css" rel="stylesheet"> </head> <body> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container-fluid"> <!-- .btn-navbar is used as the toggle for collapsed navbar content --> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <!-- Be sure to leave the brand out there if you want it shown --> <a class="brand" href="#">JavaScript</a> <!-- Everything you want hidden at 940px or less, place within here --> <div class="nav-collapse collapse"> <!-- .nav, .navbar-search, .navbar-form, etc --> </div> </div> </div> </div> <div class="container-fluid"> <div class="row-fluid">
상단 메뉴가 float 되기 때문에 컨텐츠가 메뉴에 가리는 문제가 발생한다. 이것을 해결하기 위해서 body의 padding-top 값을 60px로 지정했는데, 이 CSS 속성은 bootstarp.min.css와 bootstarp.responsive.css 사이에 선언해야만 한다.
navbar의 container를 container-fluid로 지정해야지 brand인 JavaScript가 화면 왼쪽에 정렬된다. 그냥 conainer로 지정하면 화면 중앙에 정렬된다.
application/views/footer.php
차이점
전체코드
</div> </div> <script src="http://code.jquery.com/jquery.js"></script> <script src="/static/lib/bootstrap/js/bootstrap.min.js"></script> </body> </html>
application/views/get.php
차이점
전체코드
<div class="span10"> <article> <h1><?=$topic->title?></h1> <div> <?=$topic->description?> </div> </article> </div>
application/views/main.php
차이점
전체코드
<div class="span10"> </div>
application/views/topic_list.php
차이점
전체코드
<div class="span2"> <ul class="nav nav-tabs nav-stacked"> <?php foreach($topics as $entry){ ?> <li><a href="/index.php/topic/get/<?=$entry->id?>"><?=$entry->title?></a></li> <? } ?> </ul> </div>
태그
태그명 : file
태그주소 : https://github.com/egoing/codeigniter_codeingeverbody/tree/file