我正在尝试运行一个非常基本的 Web 服务器进行开发/调试。静态 HTML 似乎已正确交付,但 JavaScript 库似乎未交付到浏览器。页面 HTML 的内容如下
<html>
<head>
<script type='text/javascript' src="/lib/json.js"></script>
...
现在,我已经在 httpd.conf 中为 /lib/ 设置了一个链接,如下所示:
Scriptalias /lib/ "/SomeFolder/lib/"
当我执行此操作时,它无法获取文件,因为这是我在 apache 错误日志中看到的内容:
... [error] [client ::1] client denied by server configuration: /SomeFolder/lib/json.js, referer: http://localhost/SomeSite
看来 apache 不允许访问该文件夹,因此我将其添加到 httpd.conf:
<Directory "/SomeFolder/lib/">
Allow from all
</Directory>
在此之后,浏览页面仍然无法运行 JS,相反,我在 apache 错误日志中看到以下错误:
[error] [client ::1] (13)Permission denied: exec of '/SomeFolder/lib/json.js' failed, referer: http://localhost/SomeSite
所以现在,apache 似乎正在尝试像 cgi 脚本之类的东西一样在服务器上运行 JS 文件。但我没有将该文件夹设为 cgi-bin 文件夹。唯一SomeFolder
提到名称的行是在 httpd.conf 中的这些行中:
Scriptalias /lib/ "/SomeFolder/lib/"
<Directory "/SomeFolder/lib/">
Allow from all
</Directory>
答案1
因为您使用的是ScriptAlias
,所以它会将该目录中的所有内容视为 CGI 脚本。您需要使用的替代方法是Alias
:
Alias /lib "/SomeFolder/lib"
安德鲁