突然间,我开始为http://example.localhost/javascript/jquery.min.js
早些时候一切都运转得很好。我没有改变任何配置,至少不是手动。
但是现在如果我尝试访问/javascript
目录本身,我会在Apache错误日志中获得"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 directive
。
答案 0 :(得分: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/
...
在使用Google搜索该配置文件名后,我找到了some explanation。
我不知道为什么,但我安装了javascript-common软件包。
摆脱它似乎没有害处,所以做$ sudo apt-get purge javascript-common
解决了我的问题。
答案 1 :(得分:7)
使用JavaScript的Web应用程序需要通过它进行分发 HTTP。为每个脚本使用公共路径可以避免启用 每个包的HTTP服务器中的此路径。
这是创建/usr/share/javascript
别名的包,并在Apache网络服务器中启用它。
就是这样。你不会对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>
所以你只需要注释这些行(使用#
字符)(不建议直接在启用conf的情况下编辑文件)以避免出现禁止错误。之后,执行此操作:
a2disconf javascript-common
a2enconf javascript-common
答案 2 :(得分:6)
您不需要编辑配置文件或清除包只是禁用它。
a2disconf javascript-common
service apache2 reload
如果由于某种原因你想使用那个conf:
a2enconf javascript-common
service apache2 reload
答案 3 :(得分:1)
我在Debian计算机上,没有a2disconf命令。我发现/etc/apache2/conf.d
目录是指向/etc/javascript-common/javascript-common.conf
的链接。
我去了并编辑了该文件(以root用户身份),并通过将顶行更改为
将其更改为别名/javascript-common
而不是/javascript
Alias /javascript-common /usr/share/javascript/
并保存并重新启动Apache。
答案 4 :(得分:1)
我在Ubuntu系统上遇到了类似的问题。显然,SortableElement
包在某个时间点被清除,配置脚本无法正常运行。删除javascript-common
并使用apt-get重新安装无法解决问题。我必须:
javascript-common
这似乎解决了这个问题。这是一个从Ubuntu 16.04 LTS(Trusty Tahr)升级的Ubuntu 14.04 LTS(Xenial Xerus)系统。
答案 5 :(得分:-3)
卸载apache2
并删除这些文件夹:
然后重新安装javascript-common
和apache2
。