site - render codeigniter




Где я помещаю файлы изображений, css, js и т. Д. В Codeigniter? (8)

Где приемлемо размещать папки css и папки файлов изображений? Я думал внутри папки просмотра? Однако контроллер всегда перенаправляет путь к базовому url, поэтому я должен указать путь в файле .html, где он сидит, что является избыточным.


(Я новичок в Codeigniter, поэтому я не знаю, является ли это лучшим советом)

Я храню общедоступные файлы в своей общей папке. Для них логично быть там, и я не хочу использовать Codeigniter для чего-то, для чего мне не нужно его использовать.

Дерево каталогов выглядит так:

  • /заявление/
  • / Государственные /
  • / Государственный / CSS /
  • / Открытый / IMG /
  • / общественные / JS /
  • / Система /

Единственные файлы, которые я храню в / public /, - index.php Codeigniter, и мой файл .htaccess:

RewriteEngine On
RewriteBase /

RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]

RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]

Вот как я обращаюсь с общественными активами. Здесь я использую метод Bootstrap Phalcon PHP .

Структура папок

|-.htaccess*
|-application/
|-public/
  |-.htaccess**
  |-index.php***
  |-css/
  |-js/
  |-img/
  |-font/
  |-upload/
|-system

Файлы для редактирования

  1. .htaccess*

    Все запросы к проекту будут переписаны в общедоступный / каталог, создающий его корень документа. Этот шаг гарантирует, что внутренние папки проекта остаются скрытыми от общего просмотра и, таким образом, устраняют угрозы безопасности такого рода. - Phalconphp Doc

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule  ^$ public/    [L]
        RewriteRule  (.*) public/$1 [L]
    </IfModule>
    
  2. .htaccess**

    Правила будут проверять, существует ли запрошенный файл, и, если это так, он не должен быть перезаписан модулем веб-сервера. - Phalconphp Doc

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php/$1 [QSA,L]
    </IfModule>
    
  3. index.php***

    Измените путь application и system путь как,

    $system_path = '../system';
    $application_folder = '../application';
    

Теперь вы используете base_url()."public/[YOUR ASSET FOLDER]" папку как base_url()."public/[YOUR ASSET FOLDER]"

Надеюсь это поможет :)


Нет, внутри папки представлений не очень хорошо.

Посмотрите: у вас должно быть 3 основных папки в вашем проекте:

system // Это CI-инфраструктура, нет причин для прикосновения к этим файлам

application // это где ваша логика идет, файлы, которые делают приложение ,

public // это должен быть ваш documentroot

По соображениям безопасности лучше сохранить свою инфраструктуру и приложение вне вашего документа, (public_html, htdocs, public, www ... и т. Д.),

Внутри вашей общей папки вы должны поместить свою общедоступную информацию, что могут видеть браузеры, ее общая для поиска папок: images, js, css; поэтому ваша структура будет:

|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess

Никто не говорит, что вам нужно изменить .htacces и добавить каталог в условие перезаписи. Я создал каталог «public» в корневом каталоге вместе с «system», «application», «index.php». и отредактировал файл .htaccess следующим образом:

RewriteCond $1 !^(index\.php|public|robots\.txt)

Теперь вам нужно просто вызвать <?php echo base_url()."/public/yourdirectory/yuorfile";?> Вы можете добавить подкаталог в «публичный» каталог, как вам нравится.


Привет, наш sturucture похож на Application, system, user_guide

создайте активы с именами папок почти во всех папках, а затем внутри этой папки с ресурсами создайте css, а javascript и папку с изображениями поместите все ваши css js в папку с папками

теперь перейдите в header.php и вызовите css именно так.

<link rel="stylesheet" href="<?php echo base_url();?>assets/css/touchTouch.css">
  <link rel="stylesheet" href="<?php echo base_url();?>assets/css/style.css">
  <link rel="stylesheet" href="<?php echo base_url();?>assets/css/camera.css"> 

У меня есть такая настройка:

  • заявление
  • система
  • активы
    • JS
    • ГИМ
    • CSS

Затем у меня есть вспомогательная функция, которая просто возвращает полный путь к этому в зависимости от моей настройки, что-то похожее на:

Приложение / хелперы / utility_helper.php:

function asset_url(){
   return base_url().'assets/';
}

Обычно я буду придерживаться общих подпрограмм, подобных этому, в том же файле и автоматически загружать его с помощью конфигурации автозагрузки codeigniter.

Примечание: вспомогательный URL-адрес автозагрузки для base_url() .

приложение / Config / autoload.php:

$autoload['helper'] = array('url','utility');

После этого у вас будет доступ к asset_url() во всем коде.


Я использую следующую структуру папок:

application 
system 
static
    admin
        js
        css
        images
    public
        js
        css
        images
    uploads
        original
        thumbs

добавьте одну папку, любое имя, например, public, и добавьте файл .htaccess и напишите разрешить из всего, что это означает, в этой папке все ваши файлы и вся папка не выдадут ошибку. Запрет доступа запрещен! используйте его так

<link href="<?php echo base_url(); ?>application/public/css/style.css" rel="stylesheet" type="text/css"  />
<script type="text/javascript" src="<?php echo base_url(); ?>application/public/js/javascript.js"></script>




codeigniter-2