2012-01-13 11 views
6

こんにちは、私はSmartyでCodeIgniterを学んでいます。私のCSSファイルには、私が使用して私のCSSリンクするCodeIgniter + CSS

/App01/application/views/css/main.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をビューと一緒に保存したいと思います。

CSSファイルのURLパスをSmarty変数に置き換えて、アプリケーションを移動するときにテンプレートのCSS URLパスを手動で変更する必要はありませんか?

ありがとうございます! Vojtech

+3

グッドデイでスレッドを開始する場合は+1。 – SpaceBeers

答えて

12

CodeIgniterの/applicationフォルダにあるものは、範囲外と見なす必要があります。最高のセキュリティを強化するために、実際にこのような構造では、あなたのwwwpublic_htmlフォルダ上/applicationを保つ検討する必要があります。これは、アプリケーション・コードをより安全になり

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

クライアントサイドのスクリプトとCSSをパブリックフォルダに作成することをお勧めします。例えば、public_html/cssおよびpublic_html/js。または、テーマルートを下りたい場合は、各CSSファイルにテーマ名を付けてください(css/theme1.csscss/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 

または何あなたのCodeIgniterのURLがあります。

+0

多くの方々にアドバイスをいただきありがとうThomas、それは私に多くの理解を助けました! – Vojtech

+0

ようこそ。 –

0

サーバのドキュメントルートフォルダへのシンボリックリンクを追加してみてください。 (www/public_html/htdocs)

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

この方法で、あなたのcssフォルダにアクセスし、現在の構造を維持することができます。

1

これは、cssとcodeigniterのリンクに役立ちます。

link_tagはリソースのリンクに使用され、helper機能を使用できます。 たとえば、htmlヘルパー、urlヘルパー、電子メールヘルパーなどお使いのコントローラで

あなたは

<?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>