Zend Framework - Включить JS не работает на новой системе
У меня проблема с ZF на моем новом сервере во время включения файла JS. Включение внешнего JS (google api) не проблема. Кажется, что zf хочет загружать JS-файлы не относительно.
Сообщение об ошибке, отображаемое FireBug в теге Srcipt html-консоли:
<script src="/javascript/helper.js" type="text/javascript">
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL http://project/javascript/helper.js was not found on this server. </p>
<hr>
<address>Apache/2.2.16 (Debian) Server at domain.squeeze Port 80</address>
</body></html>
</script>
Страница не загружает скрипты, потому что пытается получить файлы по полному URL. Это не может работать из-за правил перезаписи. После того, как я попробовал сотни вещей, я получил эти ошибки в том же месте:
<p>The requested URL /javascript/helper.js was not found on this server.</p>
Но это правильная относительная ссылка.
Моя структура:
/var/www/project/
-->application
-->...
-->public
-->javascript
helper.js
<other JS Files>
index.php
.htaccess
Когда я искал эту ошибку, я нашел следующие возможные причины:
- Неправильный или отсутствующий baseURL
- Перезапись мода не включена
- Отсутствует или плохой.htaccess файл публично
- Отсутствует "Разрешить переопределение = все" в vHost
- нет начального слэша "/" в относительном пути файла
Ни один из них не подходит к моей проблеме.
- У меня нет более глубокого "baseURL", поэтому мой путь по умолчанию "", направив vhost прямо в мою папку / project / public
- Перезапись мода включена, я могу просматривать любую страницу, контроллер, действие
- .htaccess по умолчанию и присутствует
- Для параметра "Разрешить переопределение" установлено значение "Все", мои правила перезаписи отлично работают с остальной частью проекта.
- Я пытаюсь это без "/" в начале. Нет эффекта
Мой макет имеет методы включения для JS: -> layout.phtml
$this->headScript()->appendFile('/javascript/jquery_1.6.2/jquery.js','text/javascript');
$this->headScript()->appendFile('/javascript/jqueryui_1.8.16/jquery-ui.min.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.metadata.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.validate.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.fileupload.js','text/javascript');
$this->headScript()->appendFile('/javascript/jquery.fileupload-ui.js','text/javascript');
$this->headScript()->appendFile('/javascript/methods_de.js','text/javascript');
$this->headScript()->appendFile('/javascript/helper.js','text/javascript');*/
echo $this->headScript();
Смущает то, что включение таблицы стилей работает. Это та же техника
Я включаю их
$this->headLink()->appendStylesheet('/css/layout.css');
echo $this->headLink();
Мой.htaccess:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
У меня есть несколько проектов ZF, работающих на Debian Lenny, и они работают без проблем. Сейчас я установил два Debian Squeeze и в обеих системах у меня возникли эти проблемы.
Если я копирую папку проекта в систему lenny (тот же конфиг vhost), она работает нормально.
Может быть, у кого-то есть идея, как я могу это исправить...
Большое спасибо
1 ответ
Решается путем переименования папки javascript. Смотрите мои комментарии выше для более подробной информации