Apache不提供"javascript"目录中的文件.为什么?

uKo*_*lka 14 apache ubuntu debian

突然之间,我开始为像文件这样的文件获得404s http://example.localhost/javascript/jquery.min.js

早些时候一切都很好.我没有改变任何配置,至少不是手动.

但是现在如果我尝试访问/javascript目录本身,我会进入"Cannot serve directory /usr/share/javascript/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directiveApache错误日志.

uKo*_*lka 23

我试图在Stack Overflow上找到解决方案,但我不能.所以如果有人碰巧遇到同样的问题我就离开这里.

那么为什么它会在/ usr/share/javascript中看起来而不是我在VirtualHost中配置的内容.为了解决这个问题,我做了类似以下的事情:

$ cd /etc/apache2
$ grep -R Alias * | grep share

...
conf-enabled/javascript-common.conf:Alias /javascript /usr/share/javascript/
...
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索该配置文件名后,我找到了一些解释.

我不知道为什么,但我安装了javascript-common软件包.摆脱它似乎没有害处,所以这样做$ sudo apt-get purge javascript-common解决了我的问题.

  • `sudo a2disconf javascript-common.conf` 是一个更温和的解决方案,尽管我更喜欢炸药。需要认真的谷歌才能到达这里。感谢您弄清楚这一点。 (4认同)
  • 我遇到这个问题一个多星期了,这解决了!我知道这是一个旧答案,但谢谢您! (3认同)

Tom*_*duy 7

问题:

使用JavaScript的Web应用程序需要通过HTTP分发它.为每个脚本使用公共路径可以避免在HTTP服务器中为每个包启用此路径.

这是创建/usr/share/javascript别名的包,并在Apache Web服务器中启用它.

推荐修复

就是这样.javascript目录不会有任何其他问题.另一个修复可能是重命名/usr/share/javascript//usr/share/javascript-common/,然后调整别名javascript-common.conf以指向重命名的目录.我仍然不确定这是否会影响任何未来的更新.

另一个修复:

去吧/etc/apache2/conf-available/javascript-common.conf.你会发现这个:

Alias /javascript /usr/share/javascript/
<Directory "/usr/share/javascript/">
     Options FollowSymLinks MultiViews
</Directory>
Run Code Online (Sandbox Code Playgroud)

所以你只需要注释这些行(使用#char)(不建议直接在conf-enabled中编辑文件)以避免禁止错误.之后,执行以下操作:

a2disconf javascript-common
a2enconf javascript-common
Run Code Online (Sandbox Code Playgroud)


gre*_*jor 6

您不需要编辑conf文件或清除包只是禁用它.

a2disconf javascript-common
service apache2 reload
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因你想使用那个conf:

a2enconf javascript-common
service apache2 reload
Run Code Online (Sandbox Code Playgroud)

  • 清洁手术溶液。其他都是大锤。 (2认同)