2016-04-30 3 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 

Таким образом, каждая загрузка страницы вызывает одну запись вышеуказанной ошибки в файле журнала. Мой файл 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.

сделать Также будьте осторожны телефонные активы (буквы) против активов (без буквы) очень разные, многие веб-серверы чувствительны к регистру ...

Я бегу следующий мой файл .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

привет спасибо за ваш ответ. Да, я могу напрямую обращаться к папке с ресурсами (после отключения индекса каталога по умолчанию). Да, у меня есть ссылки на /assets/css/styles.css или /assets/js/filename.js и т. Д. В моих файлах без базового url. Однако, я не думаю, что это главная проблема? Я попытался поставить base_url на эти ссылки, но он, похоже, не помог ??? – NoNice

+0

Когда я просматриваю источник моей веб-страницы, все ссылки на/assets/js теперь имеют базовый url, и я все еще получаю две записи журнала ошибок в файлах журнала для Assets/js not found ?? – NoNice

+0

Я добавил файл htaccess, который не работает, я думаю, что, возможно, «RewriteBase /» может вызвать проблему, подумайте об удалении этого как первого шага. –

Смежные вопросы