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




singular link (11)

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

Из документов CodeIgniter ...

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

Вывод

<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />

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


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

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

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

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

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

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

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


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

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

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


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

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


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

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

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

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

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

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

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

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

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

Структура папок

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

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

  1. .htaccess*

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

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

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

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

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

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

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

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


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

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

  • /заявление/
  • / Государственные /
  • / Государственный / CSS /
  • / Открытый / IMG /
  • / общественные / JS /
  • / Система /

Единственные файлы, которые я храню в / 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]

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


Существует два способа вызова сервлета из javascript:

  1. Первый случай заключается в том, что у вас уже есть html-форма на вашей странице, и вы не хотите передавать данные формы, как в фоновом режиме, например, типичный сценарий заключается в том, что ваш сервлет ожидает динамическое поле, отличное от полей формы заполненный конечным пользователем. Чтобы разрешить эту ситуацию, ожидаемое динамическое поле обычно определяется как поле скрытой формы, которое устанавливается через javascript, альтернативно форма передается программно через form.submit ()
  2. Другим случаем является то, что вы явно вызываете метод сервлета с помощью javascript, сценарии для этого случая очень распространены в каждом реальном приложении: например, заполнение таблицы данных / сетки динамическими данными, полученными из базы данных, обработка событий щелчка и многие другие сценарии. Вызов метода сервлета явно внутри функции javascript обычно выполняется через AJAX - $ .get () , $ .post () , $ .ajax ()

Проверьте это: передайте данные с javascript на сервлет для подробного объяснения примерами.







codeigniter web-applications frameworks codeigniter-2