Лучшая практика хранения папок Codeigniter
Я новичок в codeigniter, но я хорошо учусь, я собираюсь добавить папку css, images, js,..., но я не уверен, где положите его
Кто-то сказал мне сделать "общедоступную" папку
system
application
public
css
images
И затем в вашем index.php(в общей папке) отрегулируйте соответственно
$system_path = '../system';
$ application_path = '../application';
Но когда я делаю это, я получаю 404 (не ci 404, но действительно не найденный)
Кто-нибудь знает, что я могу делать неправильно? Спасибо!
Ответы
Ответ 1
другой угол на этом - и я думаю, что они пытались сказать вам сделать - помещает ваше приложение и системные папки на один уровень из "общедоступной" html-папки. таким образом ваши исходные файлы недоступны. так как в Mamp общая папка называется htdocs, в большинстве веб-хостинга называется html.
/application/html/
/system /html/
// your main index page is in the public html folder
/.….. /html/index.php
// an assets folder in the public html folder with css, img, etc folders
/.…… /html/assets/css/
/.…… /html/assets/img/
то в вашем index.php путь идет на один уровень вверх, как
$system_path = '../system';
$application_folder = '../application';
БОНУС - вот несколько советов, которые мне очень помогли.
1) Назовите свою папку приложений, затем вы можете легко переключаться между различными версиями,
"откат" очень быстро и т.д.
/app_alpha/html/
/app_beta01/html/
/app_beta02/html/
2) Поместите базовый url на страницу index.php - не в конфигурацию.
$assign_to_config['base_url'] = 'https://awesomedomain.com';
Таким образом, у вас может быть локальная версия для разработки, отдельная версия сервера в реальном времени - и вам никогда не придется беспокоиться о написании базового url, потому что ее на странице index.php - не в конфигурации.
Ответ 2
У меня есть эта настройка:
application
assets
system
.htaccess
а в папке "assets" у меня есть подпапки вроде "img" или "js" и т.д.
Я также использую "помощник утилиты", чтобы помочь мне указать на эту папку.
Если вы хотите попробовать, вы должны сначала создать помощника с именем "utility_helper.php",
с этим кодом:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('asset_url()'))
{
function asset_url()
{
return base_url().'assets/';
}
}
и сохраните его в
application/helpers/
тогда вы должны автозагрузить этого помощника, перейдите к:
application/config/autoload.php
и автоматически загрузите помощника (пример:)
$autoload['helper'] = array('form', 'url', 'utility');
вы также должны перейти в эту папку ('application/config/routes.php')
$route['assets/(:any)'] = 'assets/$1';
и иметь файл .htaccess с этим контентом:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|assets|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
теперь вы можете просто включить внешние скрипты, пример css:
<link rel="stylesheet" type="text/css" href="<?php echo asset_url();?>css/style.css">
где css - это папка внутри активов, а style.css - это файл css.
Например:
application
assets
css
style.css
system
Ответ 3
Я бы отменил изменения, внесенные вами в ваш index.php
, поскольку он выглядит так, как будто они являются источником проблемы.
Я использовал аналогичную установку для CodeIgniter, в которой все мои изображения, CSS и JS попадают в папку с именем static
, и буквально все, что я делал, это создать эту папку и поместить в нее файлы, и они работал отлично. Если вы хотите удалить index.php
из своих URL-адресов, вам нужно убедиться, что ваш файл .htaccess
не переписывает URL-адрес ваших статических файлов.
Ответ 4
найдите помощника простых ресурсов, чтобы загрузить что-либо в ваше приложение.
простой хелпер ресурсов для codeigniter