我有一个包含几个子目录的项目。一切工作正常,除了我试图访问/root/javascript目录中的文件时,得到的结果是404。这些文件确实存在,而且我输入的路径也是正确的。如果我简单地重命名目录,我就可以访问这些文件。把它重新命名,我又得到了404。VHost文件工作正常。不涉及.htaccess文件。
Apache版本: 2.4.9
操作系统: Ubuntu 13.10
发布于 2014-04-14 18:16:57
经过大量的搜索和尝试不同的东西后,问题归结为:
默认情况下,Ubuntu上的Apache2.4会启用一个名为javascript-common的配置文件,它会将对/javascript内部文件的任何请求(即,项目根目录下名为‘javascript’的目录)重定向到/usr/share/javascript。
解决方案1
使用以下命令禁用javascript-common配置文件:
a2disconfig javascript-common
解决方案2
将JavaScript文件添加到/usr/share/javascript目录中。这样,Apache实际上会找到这些文件,并且不会返回404。这样做的一个好处是,您不需要多个项目使用的同一文件(jquery.js、etc.js)的多个副本……
解决方案3
删除目录/usr/share /javascript,并创建一个指向项目的/javascript目录的符号链接。请记住,如果您有多个项目(vhost文件),则它们都将来自原始项目的相同JavaScript文件。换句话说,这可能不是最好的解决方案。
发布于 2014-08-19 11:46:36
a2disconfig解决方案对我不起作用,但通过一些搜索,我意识到javascript-common是可以卸载的。
所以我通过删除javascript-common修复了这个问题:
sudo apt-get remove javascript-common
我不确定这个包的意义,也不确定为什么它会自动安装,但我很高兴我的javascript文件再次加载!
发布于 2014-11-05 19:23:10
我正在使用lamp-server捆绑包运行Ubuntu 14.04.1 LTS
遇到同样的问题,我找到了一个类似的答案来解决它。
sudo a2disconf javascript-通用sudo服务apache2重启
在重新加载服务(注意,现在显然是a2disconf而不是a2disconfig)之后,我确实收到了执行"sudo a2disconf apache2 reload“的消息。
重新加载未解决问题...因此,重新启动
顺便说一句--我无法想象开发人员在加载这个小宝石时会怎么想--我的一些javascript文件可能是跨域可行的……但肯定不是全部!
https://stackoverflow.com/questions/23067141
复制相似问题