Лучшая практика хранения папок Codeigniter - программирование
Подтвердить что ты не робот

Лучшая практика хранения папок Codeigniter

Я новичок в codeigniter, но я хорошо учусь, я собираюсь добавить папку css, images, js,..., но я не уверен, где положите его

Кто-то сказал мне сделать "общедоступную" папку

system
application
public
    css
    images

И затем в вашем index.php(в общей папке) отрегулируйте соответственно

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

Но когда я делаю это, я получаю 404 (не ci 404, но действительно не найденный)

Кто-нибудь знает, что я могу делать неправильно? Спасибо!

4b9b3361

Ответ 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-адрес ваших статических файлов.