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

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

Ответ 1

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

  • Приложение
  • система
  • активы
    • 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().

Ответ 2

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

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

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

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

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

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

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

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

Ответ 3

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

Структура папки

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

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

  • .htaccess*

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

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

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

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

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

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

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

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

Ответ 4

Обычно я помещаю все мои файлы в папку "assets" в корне приложения, а затем я обязательно использую Asset_Helper чтобы указать на эти файлы для меня. Это то, что предлагает CodeIgniter.

Ответ 5

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

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

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

Ответ 6

Независимо от того, где вы помещаете файл CSS, вы можете просто использовать помощник CodeIgniter "html", называемый link_tag(). Вы применили бы этот помощник примерно так:

echo link_tag('folder/subfolder/stylesheet.css');

Вы можете найти файл CSS в наиболее подходящем месте (по вашему мнению). Вы должны либо автозагрузите хелпер "html", либо отдельно загрузите его, чтобы использовать его.

Люди продолжают предлагать использование base_url() для достижения этого, но на самом деле это не действительно способ "CodeIgniter" (я думаю, этот вопрос имеет несколько дубликатов). Это будет работать, но одной из причин использования структуры является использование предварительно созданных функций внутри нее.

В codeignign есть много помощников, чтобы делать такие вещи.

Ответ 7

добавьте одну папку в любое имя, например 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>

Ответ 8

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

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

Ответ 9

Я использую последнюю версию CodeIgniter 3.1.0. Структура папок:

  • система
  • Приложение
  • user_guide
  • активы
    • изображения
    • JS
    • css

То, где вы должны поместить изображения, css и js файлы в папку с ресурсами.

Ответ 10

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

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

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

  • /application/
  • /public/
  • /public/css/
  • /public/img/
  • /public/js/
  • /система/

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

RewriteEngine On
RewriteBase /

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

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

Ответ 11

Вы можете поместить папку css в папку сборка (вы называете это любое имя) в каталоге вашего проекта как:
ci_app

приложение
Просмотры
активы

         css 
             style.css 

... когда вы хотите загрузить этот файл на страницу, вы можете использовать функцию base_url() следующим образом: <head> <link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'> </head> и вы обязательно добавите base_url вашего проекта в файл config.php следующим образом:

$config['base_url'] = 'http://localhost/ci_app';

Ответ 12

Привет, наша лестница похожа Приложение, система, user_guide

создайте активы имени папки рядом со всеми папками, а затем внутри этой папки с ресурсами создайте папку css и javascript и images поместите все ваши 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"> 

Ответ 13

Помощник link_tag() - это, безусловно, способ сделать это. Поместите ваш css, где он обычно принадлежит, в site_root/css/, а затем используйте помощника:

От Документы CodeIgniter...

echo link_tag('css/mystyles.css');

Выход

<link href="#" onclick="location.href='http://example.com/css/mystyles.css'; return false;" rel="stylesheet" type="text/css" />