CodeIgniter + CSS - PullRequest
       2

CodeIgniter + CSS

7 голосов
/ 13 января 2012

Добрый день, я изучаю CodeIgniter со Smarty.Мой файл CSS хранится в

/App01/application/views/css/main.css

Чтобы связать мой CSS, я использую:

<link rel="stylesheet" type="text/css" href="http://localhost:88/APP1/application/views/css/layout.css" media="screen" />

Но CSS не применяется на моей странице.Когда я открываю CSS URL, я получаю сообщение:

Forbidden
You don't have permission to access /APP1/application/views/css/layout.css on this server.

Пожалуйста, что я делаю не так?Я хотел бы сохранить свой CSS вместе с представлением, потому что в будущем я хотел бы научиться создавать несколько тем, и я считаю, что CSS следует хранить в папке темы.

Могу ли я заменить путь URLв файл CSS с некоторой переменной Smarty, чтобы при перемещении приложения мне не нужно было вручную изменять путь URL-адреса CSS в шаблонах?

Заранее спасибо!Войтех

Ответы [ 3 ]

13 голосов
/ 13 января 2012

Все, что находится в папке /application CodeIgniter, следует считать за пределами допустимого. Для обеспечения максимальной безопасности вам следует рассмотреть возможность сохранения /application над папкой www или public_html в такой структуре:

– application
    – controllers
    – models
    – views
    – ...
– system
    – core
    – libraries
    – ...
– public_html
    – index.php

Это делает код вашего приложения более безопасным.

Я бы посоветовал создавать свои скрипты на стороне клиента и CSS в общей папке. Например public_html/css и public_html/js. Или, если вы хотите пойти по пути темы, возможно, назовите каждый файл CSS в качестве имени темы, чтобы у вас были css/theme1.css и css/theme2.css.

Если ваш сайт всегда будет работать из корня домена, то вы можете просто использовать:

<link rel="stylesheet" type="text/css" href="/css/layout.css" media="screen" />

Но если вы чувствуете, что собираетесь перемещать все вокруг, подумайте о том, чтобы подготовить местоположение файла в вашем контроллере, прежде чем отправлять его в Smarty.

$this->load->helper('url');
$this->smarty->assign('css_file', base_url("css/theme1.css"));

Это вернется:

http://localhost/app1/css/theme.css

Или каков ваш URL CodeIgniter.

1 голос
/ 21 июля 2016

Это поможет связать css с codeigniter.

link_tag используется для связи ресурсов, и вы можете использовать функцию helper. Например, html helper, url helper, email helper и т. Д.

В вашем контроллере вы должны создать что-то вроде

<?php 
class Home extends CI_Controller{
    public function helper(){
        $this->load->helper('html');    
        $this->load->view('index');
    }
}
?>

А ваша index.php в папке view использует ключевое слово link_tag.

<html>
<head>
<title></title>
<?php echo link_tag('App01/application/views/css/main.css');?>
</head>
<body>
    <?php 
     .......
    ?>
</body>
</html>
0 голосов
/ 18 января 2012

Попробуйте добавить символическую ссылку в корневую папку документа вашего сервера.(www / public_html / htdocs)

cd (document root folder)
ln -s (/App01/application/views/css) .

Таким образом, вы можете получить доступ к папке css и сохранить текущую структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...