我有一个运行默认 LAMP 堆栈的 Ubuntu 10.04.4 LTS 云服务器。
我的网站正在提供我的 PHP 页面、与之配套的图像和 CSS,并且大多数 JS 正在加载,但有一个特定的文件夹没有加载 javascript 文件。
如果我访问我的网站,site.com/javascript/search.js然后我得到 404。如果我访问site.com/includes/formvalidation.js然后 JS 文件加载。
这显示了包括和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
因此文件上传后,它具有与其他文件相同的权限包括,以及包括和JavaScript的文件夹具有相同的权限。
没有.htaccess文件,这在我的开发服务器上本地运行良好,只有当我推送实时内容时才会出现问题。
更新:我创建了一个文件,测试.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/">
答案1
看来您的./conf.d/javascript-common.conf:
文件中有一个别名导致 Apache 查找错误的位置。正如您所指出的,删除这些条目可以解决问题,Apache 会很开心。
答案2
这对我有用
sudo a2disconf javascript-common
这javascript-common.conf
将从conf-available
和中删除conf-enabled
。