자산은 Codeigniter 프로젝트에서 어디로 가야합니까?
-
05-07-2019 - |
문제
방금 CodeIgniter로 시작했으며 CSS, JS 및 이미지와 같은 것들이 어디로 가야하는지 잘 모르겠습니다. 전체 시스템 폴더 외에는 괜찮은 것처럼 보이지만 모든 것이 별거된다는 것을 의미합니다. 내부는 FilePath가 더 길다는 것을 의미하며, 그것이 엉망이 될까 걱정됩니다. 이 문제에 대한 모범 사례는 무엇입니까?
해결책
나는 보통 별도의 폴더를 루트 레벨에 넣으므로 다음과 같은 디렉토리 구조로 끝납니다.
/system
/css
/js
/img
당신이 사용할 때 나를 위해 일하는 것 같습니다 site_url(url)
, 생성하는 URL은 루트에서 나오므로 사용할 수 있습니다. site_url('css/file.css')
스타일 시트 등에 URL을 생성하려면
다른 팁
개인적으로, 나는 찢어진다 application
디렉토리에서 system
디렉토리와 형제로 만드십시오 system
. 그런 다음 프로젝트 디렉토리를 만듭니다 public_html (www)
내가 index.php를 이동하고 공개 자산을 저장하는 곳.
작업중 인 프로젝트가 projekt
. 부모 디렉토리에서 public_html (www)
호출 된 디렉토리를 만듭니다 CISYSTEM
, 및 해당 디렉토리 내부에서 사용중인 버전에서 디렉토리를 만듭니다. 202
, 210
등.
/CISYSTEM
/202
/210
/another_CI_version
/projekt_application
/models
/views
/controllers
/private_assets
/public_html
/projekt
index.php
.htaccess
css
img
js
lib
이 디렉토리 구조의 아름다움은 다른 보안 계층을 추가하고 CI 코어를 업그레이드/교체하는 것이 치명적인 것입니다. 또한 코어를 변경하지 않아도됩니다. 코어가 저장되는 단일 디렉토리가 있고 모든 프로젝트를 참조하여 물건을 건조하게 유지합니다.
이 모든 디렉토리 셔플 링은 몇 가지를 다시 라우팅해야합니다. 운 좋게도 Codeigniter는 쉽게 만듭니다. 모든 변경 사항은 index.php
파일.
열려 있는 index.php
그리고 몇 가지를 다시 라우팅합니다.
변화: $system_path = 'system';
에게: $system_path = '../../CISYSTEM/210';
변화: $application_folder = 'application';
에게: $application_folder = '../../projekt_application';
또한 많은 사람들이 site_url()
다른 대답에서. 덜 장악하는 방법을 추천합니다 site_url()
... HTML을 사용하면 매번 전화 할 필요가 없습니다. <base>
요소:
<base href="<?= site_url();?>">
응용 프로그램에 포함하십시오 <head>
그리고 당신은 컨트롤러를 직접 호출 할 수 있습니다 ...
<a href='controllername/functionname'>Some Action</a>
건배
나는 루트 레벨에 너무 많은 디렉토리를 갖는 것을 싫어하기 때문에 /공개를 사용하고 htaccess를 사용하여 /public /scripts 등을 다시 작성 /스크립트를 다시 작성합니다.
자산을 루트 레벨로 유지하는 것이 가장 좋습니다. 당신이 사용할 수있는 <?=base_url()?>
사이트의 전체 루트를 반향합니다. 구성 파일에서 웹 사이트의 루트를 설정합니다. 이 진술은 그냥 반향합니다.
이로 인해 다음과 같은 내용을 사용할 수 있습니다.
<link href="<?=base_url()?>/css/style.css" rel="stylesheet" type="text/css" />
코드의 어느 곳에서나 여전히 http://example.com/css/style.css.
base_url ()/css/name.css
이러한 방식으로 Site_url (URL) 도우미를 사용하려면 먼저 URI에서 index.php 세그먼트를 제거하려면 Apache Mod_rewrite (또는 동등한)를 구성해야합니다.
그렇지 않으면 site_url 메소드는 URL에 index.php를 추가하여 위와 같은 기본 디렉토리에있는 경우 자산의 경로를 망칠 수 있습니다.
URI에서 index.php를 제거하는 Codeigniter 문서는 다음과 같습니다.