CodeIgniter + CSS

前端 未结 3 1063
旧时难觅i
旧时难觅i 2021-01-05 10:03

Good Day, I\'m learning CodeIgniter with Smarty. My CSS file is stored in

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

To link my CSS I use:

相关标签:
3条回答
  • 2021-01-05 10:34

    Anything in the /application folder of CodeIgniter should be considered out-of-bounds. For the best security, you should actually consider keeping /application above your www or public_html folder in a structure such as this:

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

    This makes your application code safer.

    I’d advise creating your client-side scripts and CSS in a public folder. For example public_html/css and public_html/js. Or, if you wanted to go down the theme route, possibly name each CSS file as the name of the theme, so you’d have css/theme1.css and css/theme2.css.

    If your site will always work from the root of a domain, then you can just use:

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

    But if you feel that you’re going to be moving all sorts of things around, then consider preparing the file location in your controller before sending it to Smarty.

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

    That will return:

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

    Or whatever your CodeIgniter URL is.

    0 讨论(0)
  • 2021-01-05 10:46

    This will help to link css to codeigniter.

    The link_tag is used to link resources and you can use helper function. For example html helper, url helper, email helper, etc.

    In your controller you have to create a function something like

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

    And your index.php in view folder use link_tag keyword.

    <html>
    <head>
    <title></title>
    <?php echo link_tag('App01/application/views/css/main.css');?>
    </head>
    <body>
        <?php 
         .......
        ?>
    </body>
    </html>
    
    0 讨论(0)
  • 2021-01-05 10:58

    Try adding a symlink to your servers document root folder. (www/public_html/htdocs)

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

    This way you can access your css folder and keep the current structure.

    0 讨论(0)
提交回复
热议问题