开发者

Where to put resources (css/images) in CodeIgniter? [duplicate]

This question already has answers here: Where do I put image files, css, js, etc. in Codeigniter? (14 answers) Closed 9 years ago.

I am doing some testing with CI and have it running in a folder. http://www.example.com/sub-folder/ for instance

My directory structure is like this (where / is sub-folder/):

/

|-/system

|-/application

I have eclipse as my IDE with 2 projects, 1 for system, 1 for application, where application is my project that includes a reference to system.

My .htaccess file prevents access to system directory. I would like to have my images and CSS placed into: application/resources/images and application/resources/css respectively. I would like to be able to use <link rel="stylesheet" href="/sub-folder/css/style.css" /> However, after spending some time testing and searching, I haven't b开发者_C百科een able to get the CSS file to load from the application directory.

What do I need to change or add in my .htaccess to be able to do this?

The contents of my .htaccess follows:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

### Canonicalize codeigniter URLs

# If your default controller is something other than
# "welcome" you should probably change this
RewriteRule ^(welcome(/index)?|index(\.php)?)/?$ / [L,R=301]
RewriteRule ^(.*)/index/?$ $1 [L,R=301]

# Removes trailing slashes (prevents SEO duplicate content issues)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

# Removes access to the system folder by users.
# Additionally this will allow you to create a System.php controller,
# previously this would not have been possible.
# 'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

# Checks to see if the user is attempting to access a valid file,
# such as an image or css document, if this isn't true it sends the
# request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]


Instead of

<link rel="stylesheet" href="/sub-folder/css/style.css" />

You could do

<link rel="stylesheet" href="<?php echo base_url('application/sub-folder/css/style.css'); ?>" />

I usually keep my assets in the root folder (where the main index.php file is) and use this asset library to load everything.

If you want to keep your assets in application/sub-folder you could do this:


I set up my CI projects like this:

  • application (my application files)
  • assets (publicly accessible css, js and images etc)
  • system (codeigniter core)

Typically, if I'm building in a CMS I'll put the CMS assets inside the application folder since they're basically private.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜