Ответы:
У меня есть такая настройка:
Затем у меня есть вспомогательная функция, которая просто возвращает полный путь к этому в зависимости от моих настроек, что-то похожее на:
Приложение / хелперы / utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
Обычно я буду хранить общие процедуры, подобные этой, в одном и том же файле и автоматически загружать его с помощью конфигурации автозагрузки codeigniter.
Примечание: автозагрузка URL помощника для
base_url()
доступа.
приложение / Config / autoload.php:
$autoload['helper'] = array('url','utility');
После этого у вас будет доступ ко asset_url()
всему вашему коду.
$autoload['helper'] = array('url', 'utility');
Нет, внутри папки просмотров не хорошо.
Посмотрите: у вас должно быть 3 основных папки в вашем проекте:
system // Это CI-фреймворк. Причин не трогать эти файлы.
application // это куда идет ваша логика, файлы, которые составляют приложение ,
public // это должен быть ваш documentroot
По соображениям безопасности лучше хранить вашу инфраструктуру и приложение за пределами вашего rootroot (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*
Все запросы к проекту будут переписаны в каталог public /, что сделает его корневым документом. Этот шаг гарантирует, что внутренние папки проекта остаются скрытыми от публичного просмотра и, таким образом, устраняет угрозы безопасности такого рода. - 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]"
.
Обычно я помещаю все свои файлы в папку «assets» в корне приложения, а затем я использую 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» способ сделать это (я думаю, у этого вопроса есть несколько дубликатов). Это будет работать, но одной из причин использования фреймворка является использование внутри него готовых функций.
В Codeigniter есть много помощников, которые делают подобные вещи.
добавьте в одну папку любое имя, например, 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, поэтому я не знаю, если это лучший совет)
Я храню общедоступные файлы в своей общей папке. Для них логично быть там, и я не хочу использовать Codeigniter для чего-то, для чего мне не нужно его использовать.
Дерево каталогов выглядит так:
Единственные файлы, которые я храню в / 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]
Вы можете поместить папку css в папку сборка (вы называете это любое имя) в каталоге вашего проекта как:
- 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';
Привет наша структура как приложение, система, 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">
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" />