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

Когда я искал эту ошибку, я нашел следующие возможные причины:

  1. Неправильный или отсутствующий baseURL
  2. Перезапись мода не включена
  3. Отсутствует или плохой.htaccess файл публично
  4. Отсутствует "Разрешить переопределение = все" в vHost
  5. нет начального слэша "/" в относительном пути файла

Ни один из них не подходит к моей проблеме.

  1. У меня нет более глубокого "baseURL", поэтому мой путь по умолчанию "", направив vhost прямо в мою папку / project / public
  2. Перезапись мода включена, я могу просматривать любую страницу, контроллер, действие
  3. .htaccess по умолчанию и присутствует
  4. Для параметра "Разрешить переопределение" установлено значение "Все", мои правила перезаписи отлично работают с остальной частью проекта.
  5. Я пытаюсь это без "/" в начале. Нет эффекта

Мой макет имеет методы включения для 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. Смотрите мои комментарии выше для более подробной информации

Другие вопросы по тегам