Внешний файл CSS не загружается в браузер - PullRequest
3 голосов
/ 15 марта 2011

Итак, во-первых, я хочу предисловие, сказав, что я новичок в программировании, так что прости меня, если я не буду следовать так быстро.

Теперь у меня есть проблема, которая действительно беспокоит меня в течение последних нескольких дней, и я всюду искал решение.

Я использую конфигурацию сервера WAMP.Все работало нормально, пока я не начал работать с CSS.У меня есть внешний файл CSS.

Когда я просматриваю свою HTML-страницу в Dreamweaver, я вижу, что она правильно подключается к этому файлу CSS.Я вижу стили, применяемые в представлении «Дизайн».Однако, когда я просматриваю страницу в браузере, Firefox говорит (в консоли ошибок), что файл .css не может быть загружен, поскольку его тип MIME - text / html, а не text / css.

Итак, я решил, что это проблема конфигурации сервера.Я сделал следующее: я вошел в файл .HTACCESS и добавил следующую строку: AddType text / css .css

После перезапуска сервера это все равно не решило проблему.По какой-то причине браузер продолжает читать мой CSS-файл как HTML-файл.Есть идеи, что здесь может пойти не так?

Вот заголовок файла, который я пытаюсь загрузить в браузер (на самом деле это шаблон Smarty):

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../htdocs/css/styles.css" type="text/css" media="all" />
</head>

Также, пожалуйста,обратите внимание, что я кодирую с использованием Zend Framework.Вот мой файл .HTACCESS:

RewriteEngine на

RewriteCond% {SCRIPT_FILENAME}! -F

RewriteCond% {SCRIPT_FILENAME}! -D

RewriteRule^ (. *) $ index.php / $ 1

AddType text / css .css

Поэтому я воспользовался советом DA и нажал на View Page Source при просмотре страницы в браузере и нажалпо ссылке на мой файл CSS.Вот что мне показывает:

Когда я нажимаю на ссылку, я вижу это:

<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0'  cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\shaancode\www\phpweb20\htdocs\Zend\Controller\Dispatcher\Standard.php on line <i>248</i></th></tr>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Zend_Controller_Dispatcher_Exception: Invalid controller specified (error) in C:\shaancode\www\phpweb20\htdocs\Zend\Controller\Dispatcher\Standard.php on line <i>248</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>

<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0006</td><td bgcolor='#eeeeec' align='right'>382488</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\shaancode\www\phpweb20\htdocs\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0892</td><td bgcolor='#eeeeec' align='right'>4748936</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch(  )</td><td title='C:\shaancode\www\phpweb20\htdocs\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>42</td></tr>
</table></font>

Ответы [ 4 ]

1 голос
/ 15 марта 2011
href="../htdocs/css/styles.css"

Каталог htdocs обычно является webroot.Таким образом, хотя это и очень хороший путь в вашей локальной файловой системе, когда вы обращаетесь к нему через веб-сервер, ../ игнорируется, потому что вы уже находитесь в верхней части локальной части.Тогда нет htdocs, поэтому остаток пути должен составлять 404.

По какой-то причине Zend отправляет свой «Указан неверный контроллер (ошибка)» (что означает «Я не могу найти то, что я»Вас спросили "с кодом состояния 200 OK, поэтому браузер говорит" Это HTML-документ "вместо" Ничего не найдено ".

Удалите часть ../htdocs/ из URL.

0 голосов
/ 15 марта 2011

Спасибо за помощь всем! Многие из вас были правы, в конечном итоге это было связано с дорогой. Итак, я смог исправить ошибку, но, похоже, решение было простым, а проблема глупой!

В Dreamweaver я не определил папку Site Root !! Это вызывало проблему, потому что я использовал относительный путь, но в конечном итоге он не был правильно найден, потому что корень сайта не был определен!

Поэтому я установил для корня сайта в Dreamweaver мой корневой каталог (где находится .HTACCESS) и изменил путь на просто "/css/styles.css".

И теперь это работает!

Извините, что беспокою всех и спасибо всем за помощь!

0 голосов
/ 15 марта 2011

Проблема здесь может быть двоякой. Либо отсутствует файл CSS, и ваша система обслуживает страницу 404 (если вы ее настроили), поэтому браузер жалуется, что это не файл CSS.

Или проблема может быть в том, что у вас проблема с конфигурацией сервера. Если это новая установка WAMP, это маловероятно.

Вы пытались получить доступ к файлу напрямую?

  • Просмотр источника в Firefox (или любом браузере)
  • нажмите на ссылку CSS, которую вы сделали. Если вы не можете щелкнуть по нему, возможно, придется скопировать и вставить его в новом окне.
  • Относится ли это к файлу CSS или другому файлу?

Если он переводит вас в другой файл, это означает, что вы не связали его должным образом. Возможно, вам лучше использовать абсолютный путь (из вашего веб-корня), а не относительный путь.

РЕДАКТИРОВАТЬ : Использование таблиц стилей в Zend Framework

Предполагая, что ваши CSS-файлы находятся в ZF / public / css, вы должны включить их в свой макет или просмотреть как это

$this->headLink()->appendStylesheet('/css/styleForThisPage.css'); // in your view 

Укажите область для печати (в макете)

echo $this->headLink()

Однако, если это обычный CSS-файл и вы хотите включить свой CSS только в макет, то достаточно просто отобразить его

echo $this->headLink()->appendStylesheet('/css/global.css');
0 голосов
/ 15 марта 2011

Вы можете использовать CSS, вероятно, используя <link rel=stylesheet href="cssName.html"> Это может быть похоже на Mozilla Bug . Пожалуйста, поделитесь своим кодом, чтобы мы могли предоставить лучшие предложения.

...