Відповіді:
У мене таке налаштування:
Потім у мене є допоміжна функція, яка просто повертає повний шлях до цього, залежно від моєї установки, щось подібне до:
додаток / helpers / utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
Зазвичай я зберігаю загальні підпрограми, подібні до цього, в тому самому файлі і автоматично завантажую його з конфігурацією автозавантаження кодування.
Примітка: помічник автоматичного завантаження URL-адреси для
base_url()
доступу.
application / config / autoload.php:
$autoload['helper'] = array('url','utility');
Потім у вас буде доступ до asset_url()
всього коду.
$autoload['helper'] = array('url', 'utility');
Ні, всередині папки переглядів це не добре.
Подивіться: у вашому проекті має бути 3 основних папки:
system // Це рамки CI, не дуже багато причин торкатися цих файлів
застосування // тут іде ваша логіка, файли, які створюють додаток ,
public // це повинен бути вашим документом root
З міркувань безпеки краще зберігати рамки та додаток поза документами (public_html, htdocs, public, www ... тощо)
Всередині вашої загальнодоступної папки слід розмістити загальнодоступну інформацію про те, що можуть бачити браузери, загальне для пошуку папок: images, js, css; тож ваша структура буде:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
public
Чи є проблема, щоб додати папку з таким же ім'ям.
.htaccess
для видалення /index.php?
та виклику загальнодоступної папкиbase_url().'public/yourfolder';
Так я поводжусь із державними активами. Тут я використовую метод Bootstrap Phalcon PHP .
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
.htaccess*
Усі запити до проекту будуть перезаписані до загальнодоступних / каталогу, що робить його корінцем документа. Цей крок гарантує, що внутрішні папки проектів залишаються прихованими від публічного перегляду і тим самим виключає загрози безпеці такого типу. - Phalconphp Doc
<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]"
Сподіваюся, це допомагає :)
/public
чому base_url ()."public/[...
! Це має бути справедливим base_url ()."/[YOUR ASSET FOLDER]"
.
Зазвичай я розміщую всі мої файли у папці "Активи" в корені програми, а потім переконуюсь, що я використовую Asset_Helper, щоб вказати на ці файли для мене. Ось що пропонує CodeIgniter.
Ніхто не каже, що вам потрібно змінити .htacces і додати каталог у режимі перезапису. Я створив каталог "public" у кореневому каталозі разом із "system", "application", "index.php". і відредагував файл .htaccess таким чином:
RewriteCond $1 !^(index\.php|public|robots\.txt)
Тепер вам потрібно просто зателефонувати <?php echo base_url()."/public/yourdirectory/yuorfile";?>
Ви можете додати підкаталог всередину "public" dir як завгодно.
Незалежно від того, куди ви помістите файл CSS, ви можете просто скористатися помічником CodeIgniter "html" під назвою link_tag (). Ви застосуєте цього помічника приблизно так:
echo link_tag('folder/subfolder/stylesheet.css');
Ви можете знайти файл CSS у найбільш підходящому місці (на вашу думку). Вам доведеться або автоматично завантажити "html" помічник, або окремо завантажити його, щоб використовувати його.
Люди продовжують пропонувати використання base_url () для досягнення цього, але насправді це не насправді спосіб "CodeIgniter" (я думаю, що це питання має кілька дублів). Це спрацює, але однією з причин використання фреймворку є використання попередньо зроблених функцій всередині нього.
Є багато помічників у програмі, що роблять подібні речі.
додайте в одну папку будь-яке ім'я, наприклад, загальнодоступне та додайте .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 3.1.0. Структура папки його:
Ось де слід помістити файли зображень, css та js у папку активів.
(Я новачок у Codeigniter, тому не знаю, чи це найкраща порада)
Я зберігаю загальнодоступні файли у своїй загальнодоступній папці. Їм логічно бути там, і я не хочу використовувати Codeigniter для чогось, для чого мені не потрібно.
Дерево каталогів виглядає приблизно так:
Єдині файли, які я зберігаю в / public /, це Codeigniter's index.php та мій файл .htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]
RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]
ви можете помістити папку css всередині папки asst (ви називаєте це будь-яке ім'я) в каталозі вашого проекту як:
- ci_app
- application
- views
- assets
- 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';
Привіт, наша структура схожа на 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">
The link_tag()
Помічник явно спосіб зробити це. Помістіть свій css там, де він зазвичай належить, у site_root / css /, а потім скористайтеся помічником:
echo link_tag('css/mystyles.css');
Вихідні дані
<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />