Apache为/ javascript目录中的请求返回404

时间:2014-04-14 18:11:00

标签: apache ubuntu ubuntu-13.10

我有一个包含多个子目录的项目。一切正常,除非我尝试访问/ root / javascript目录中的文件,我得到404.文件确实存在,我实际上正确地键入路径。如果我只是重命名目录,我就可以访问这些文件。重新命名,我再次获得404。 VHost文件工作正常。没有涉及.htaccess文件。

Apache版本:2.4.9

操作系统:Ubuntu 13.10

4 个答案:

答案 0 :(得分:6)

经过多次搜索和尝试不同的事情后,问题归结为:

默认情况下,Ubuntu上的Apache 2.4启用一个名为javascript-common的配置文件,它将任何请求重定向到/ javascript中的文件(即项目根目录中名为' javascript'的目录)到/ usr / share / javascript。

解决方案1 ​​

使用以下命令禁用javascript-common配置文件:

a2disconfig javascript-common

解决方案2

在/ usr / share / javascript目录中添加JavaScript文件。这样Apache实际上会找到这些文件,并且不会返回404。以这种方式做事的一个好处是你不需要多个项目使用的相同文件(jquery.js等等)的多个副本......

解决方案3

删除目录/ usr / share / javascript,并创建指向项目&javascript目录的符号链接。请记住,如果您有多个项目(vhost文件),它们将从原始项目的相同JavaScript文件中提供服务。换句话说,这可能不是最好的解决方案......

答案 1 :(得分:3)

a2disconfig解决方案对我没有用,但是经过一些搜索,我意识到javascript-common是可以卸载的东西。

所以我通过删除javascript-common:

解决了这个问题
sudo apt-get remove javascript-common

我不确定此软件包的重点,或者为什么会自动安装,但我很高兴我的javascript文件再次加载!

答案 2 :(得分:2)

我正在使用lamp-server bundle运行Ubuntu 14.04.1 LTS

遇到同样的问题,我发现一个类似的答案解决了它。

sudo a2disconf javascript-common sudo service apache2 restart

在a2disconf之后(注意它现在显然是a2disconf而不是a2disconfig) 我确实收到了执行“sudo service apache2 reload”的消息

重新加载没有解决问题...因此重启

作为旁白 - 我无法想象开发人员在加载这个小宝石时的想法 - 我的一些javascript文件可能跨域可行......但肯定不是全部!

答案 3 :(得分:0)

您可以在.conf中覆盖/ javascript别名以反映您的需求:

Alias / javascript / my_custom_dir

相关问题