2016-11-07 16 views
-1
$config['base_url'] = 'localhost/project'; 

<link href="<?= base_url(); ?>/css/bootstrap.min.css" rel="stylesheet"> 

エラーが発生し、倍精度の '/'のために私のビューにCSSが読み込まれません。CodeigniterのURLとbase_url()の混乱

これはブラウザのビューのページソースです。

<link href="localhost/project//css/bootstrap.min.css" rel="stylesheet"> 

そして、CSSは読み込まれません。私がページソースを試してリンクをたどると、404エラーに繋がります。

私が混乱しているのは、設定ファイルのbase_urlにプロトコルを追加するときです。未知の理由のために

<link href="http://localhost/project//css/bootstrap.min.css" rel="stylesheet"> 

は、上記のURLは、CSSを指しているようだ、それはそれはまだ「プロジェクト」と「CSSの」の間のURLをダブル「/」があるにもかかわらず、私の見解にロードします。また、ビューで 'css'の前に '/'を削除しても、プロトコルがなくてもベースURLにプロトコルを追加していればロードされます。 cssを読み込みます。

<link href="http://localhost/project/css/bootstrap.min.css" rel="stylesheet"> 

私も、私は上の関数BASE_URLを使用する時には、上記の私のconfigベースURLを

、私は最後に「/」を入れたことがない理由、それは「/」を追加しない、いくつかの質問を持っています私の見解。なぜそれはこのようなものですか?

私の2番目の質問は、私のURLの '/'です。

<link href="css/bootstrap.min.css" rel="stylesheet"> 

<link href="/css/shop-homepage.css" rel="stylesheet"> 

私のブラウザのビューのページソースのURLをクリックすると、最初のリンクはまだURLのコントローラを持っています。

http://localhost/project/Pages/css/bootstrap.min.css 

i「は、CSS」の前に「/」を追加した場合、それはプロジェクト 'とURLの「ページ」を削除しますが。

http://localhost/css/shop-homepage.css 

私は彼らが私はなぜ知らないので、私は右感じていないロードするために私のCSSを得ることができるにもかかわらず、その発生理由を私は知らないだけという問題を解決することができます。

答えて

0

理想configにごBASE_URLは次のようにする必要があります:

$config['base_url'] = "http://www.example.com/"; 

とあなたのビューで、あなたがインクルードする必要があり、フォルダ名やファイル名を追加することができます。

<link href="<?= base_url(); ?>css/bootstrap.min.css" rel="stylesheet"> 

この方法は全く混乱または二 '/'

になることはありませプラスこれを使用して好むでしょう:

<link href="<?php echo base_url(); ?>css/bootstrap.min.css" rel="stylesheet"> 
1

base_urlURL Helperの一部です。

問題は、私たちの設定ファイルである、設定ファイルは言うこと:

/* 
|-------------------------------------------------------------------------- 
| Base Site URL 
|-------------------------------------------------------------------------- 
| 
| URL to your CodeIgniter root. Typically this will be your base URL, 
| WITH a trailing slash: 
| 
| http://example.com/ 
| 
| If this is not set then CodeIgniter will guess the protocol, domain and 
| path to your installation. 
| 
*/ 
$config['base_url'] = 'http://localhost/site/'; 

あなたはスラッシュを追加していなければならない、とあなたがしなかったので、base_url()機能が自動的に追加されます。

最良の使い方はあなたが単にホスト名とURLを起動することはできません

<link href="<?= base_url("css/bootstrap.min.css"); ?>" rel="stylesheet"> 
0

のように、パラメータとしてファイルの場所を提供することである。

localhost/project 

そうでない場合は、それがしたいですあなたのドメイン名やサーバー内の場所を意味するのかどうかは分かりません。

あなたは完全なプロトコルプレフィックスが必要です。HTTPの文脈で

http://localhost/project 

...または、もしすでに、少なくともダブルスラッシュ:

//localhost/project 

ブラウザが頻繁に隠すことを好むを実際のURL(このように広範な混乱)が根底にある値はまったく同じです。

+0

何らかの理由で、クロムは「http://」を隠しますが、緑色で「https://」を表示します。 – Phiter

関連する問題