Javascript 404 не найден, но загрузка PHP и CSS

У меня есть облачный сервер Ubuntu 10.04.4 LTS со стеком LAMP по умолчанию.

Мой веб-сайт обслуживает мои страницы PHP, изображения и CSS, которые идут вместе с ними, и большая часть моего JS загружается, но есть определенная папка, которая не загружает файлы javascript.

Если я захожу на свой сайт site.com/javascript/search.js, я получаю 404. Если я захожу на site.com/includes/formvalidation.js, загружается файл JS.

Здесь показаны разрешения для папок include и javascript:

user@server~site/httpdocs$ ls -la | grep includes
drwxr-xr-x  5 user www-data    4096 Jun 14 23:53 includes

user@server~site/httpdocs$ ls -la includes | grep .js
-rwxr-xr-x  1 user www-data 20974 Mar  2 22:33 formvalidation.js

user@server~site/httpdocs$ ls -la | grep javascript
drwxr-xr-x  3 user www-data    4096 Jun  3 11:03 javascript

user@server~site/httpdocs$ ls -la javascript | grep .js
-rwxrw-r-x  1 user www-data  7276 Mar  2 22:33 calendar.js
-rwxrw-r-x  1 user www-data 33321 Jun  3 11:03 cookieControl-5.1.min.js
-rwxrw-r-x  1 user www-data 15552 Mar  2 22:33 image_display.js
-rwxrw-r-x  1 user www-data 21130 Mar  2 22:33 popcalendar.js
-rwxrw-r-x  1 user www-data 67956 Mar  2 22:33 search.js
-rwxrw-r-x  1 user www-data   555 Mar 31 00:15 sell.js
-rwxrw-r-x  1 user www-data   318 Mar 31 00:15 sign_in.js
-rwxrw-r-x  1 user www-data   142 Mar 31 00:15 update.js

Таким образом, файл загружен, у него есть те же права доступа, что и у других файлов во включаемых файлах, а папки include и javascript имеют одинаковые разрешения.

Там нет файла .htaccess, и он отлично работает локально на моем сервере Dev, только когда я запускаю вживую, у меня возникает проблема.

ОБНОВЛЕНИЕ: я сделал файл test.js и положил его в корень. Это можно посмотреть по адресу site.com/test.js. Я переместил это, `mv test.js javascript/*, и посещение site.com/javascript/test.js дает 404

ОБНОВЛЕНИЕ: Проверка /var/log/apache2/error.log показывает, что файл не существует: /usr/share/javascript/search.js

ОБНОВЛЕНИЕ: я искал javscript в моей папке /etc/apache2 и нашел это:

user@site:/etc/apache2$ grep -iR javascript ./       
./mods-available/deflate.conf: AddOutputFilterByType DEFLATE application/x-javascript application/javascript  application/ecmascript    
./mods-enabled/deflate.conf: AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
./conf.d/javascript-common.conf:Alias /javascript /usr/share/javascript/
./conf.d/javascript-common.conf:<Directory "/usr/share/javascript/">

2 ответа

Решение

Похоже, в вашем псевдониме был псевдоним ./conf.d/javascript-common.conf: файл, который заставлял Apache искать не в том месте. Как вы заметили, удаление этих записей решило проблему, и Apache был счастлив.

Это сработало для меня

sudo a2disconf javascript-common

Это удаляет javascript-common.conf от conf-available а также conf-enabled,

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