2016-04-30 13 views
1

私はcodeigniterを使用していますが、これらの404エラーがログファイルに残っています。Htaccessファイル - 一部のフォルダに404ページが見つかりません

ERROR - 2016-04-30 16:41:15 --> 404 Page Not Found: Assets/js 
ERROR - 2016-04-30 16:41:15 --> 404 Page Not Found: Assets/js 
ERROR - 2016-04-30 16:41:18 --> 404 Page Not Found: Assets/js 

したがって、すべてのページが読み込まれると、上記のエラーがログファイルに1つ入力されます。私のhtaccessファイルは以下のようになります。ここで何がうまくいかないの?

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ index.php?/$1 [L] 

    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ index.php?/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 


    RewriteCond $1 !^(index\.php|assets|myadmin|robots\.txt) 
    RewriteRule ^(.*)$ index.php?/$1 [L] 

</IfModule> 
<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

assets/jsが有効なフォルダであることを確認できます。

答えて

0

ウェブパスを経由してアセットフォルダにアクセスできますか?例えばhttp://localhost/assets(ウェブサーバーでインデックスが有効になっていないとファイルを取得しようとします(例:http://localhost/assets/css/style.css)、読み込みますか?

これがロードされている場合は、基本パスを使用せずにアセットを呼び出す可能性があります。これは、ビューが自分のフォルダ内から直接呼び出すことを意味しています。

site_url()を使用するのは本当に良いステップです(urlヘルパー)...単純なヘルパーを作成し、これを含む自動ロードに追加することで、資産を呼び出すのが簡単になりますようにお願いします。

if (!function_exists('assets')) 
{ 
/** 
* Base asset directory call 
*/ 
function assets($var) 
{ 
    $CI =& get_instance(); 
    $CI->load->helper('url'); 

    return site_url('assets') . '/' . $var; 
} 
} 

次に、あなたのビューでそれを呼び出します。それは、この度、レンダリング表示されるでしょう

<!-- load CSS --> 
<link href="<?php echo assets("css/bootstrap.min.css") ?>" rel="stylesheet"> 

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

これは本当に基本的な例ですが、ヘッダーやフッターを呼び出すアセットのヒープがある場合は、設定ファイルに基づいてロードするヘルパーを作成することをお勧めします。特定のページの読み込みに必要なものを指定することもできますそのようにしても、foreachで動的にロードされます。

はまた、資産対(大文字)(無大文字)が非常に異なっている、多くのWebサーバは、大文字と小文字が区別されます...

私は私のhtaccessファイルに対して次のコマンドを実行し、慎重呼び出す資産も行います

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 
+0

お返事ありがとうございます。はい(デフォルトのディレクトリインデックスを無効にした後)資産フォルダに直接アクセスできます。はいベースURLのないビューファイルで/assets/css/styles.cssや/assets/js/filename.jsなどの参照があります。しかし、私はそれが主要な問題だとは思わない?私はこれらの参照にbase_urlを入れてみましたが、それはdidntは助けているようです??? – NoNice

+0

私のWebページのソースを見ると、/ assets/jsへの参照はすべてベースURLになっていますが、Asets/jsのログファイルに2つのエラーログエントリがまだ残っていますか? – NoNice

+0

問題がないhtaccessファイルを追加しました。「RewriteBase /」で問題が発生する可能性があります。最初のステップとして削除することを検討してください。 –

関連する問題