如何配置 apache2 以从服务器根子目录提供静态资产?

如何配置 apache2 以从服务器根子目录提供静态资产?

我是一名前端开发人员 - 我刚刚继承了一台服务器(Mac Pro)来在我们的网络中托管我的原型。上面已经设置了一个 Apache 服务器,但我对它的配置不太了解。这是一台共享服务器,因此虽然服务器根目录设置在/Users/Shared,但我只有权限将我的原型放在

/Shared/mydiv/mydept/prototypes

我使用 webpack 构建我的网站,并将静态资产放在dist目录中。服务器配置正常;用户可以浏览,sharedserver.url.com/mydiv/mydept/prototypes并且 index.html 已正确提供。

问题是 index.html 引用了scripts.js也位于dist目录内,但 Web 服务器正在 sharedserver.url.com 的服务器根目录中寻找它们,这显然会返回 404。

我在 index.html 中引用脚本如下:

<script src="scripts.js"></script>

同样,我需要引用位于的一些字体dist/fonts

sharedserver.url.com/   <-- APACHE TRYING TO ACCESS STATIC ASSETS HERE
|_mydiv/
   |_ mydept/
      |_ prototypes/
         |_ _ dist/
                |_ index.html
                |_ scripts.js  <-- REALLY WISH APACHE LOOK FOR STATIC ASSETS HERE 
                | _ _fonts/
                       |_.eof,.ttf,etc.

我读了一些关于使用 vhosts 的内容,但该模块尚未加载到 httpd.conf(注释掉),我不想与现有配置发生冲突,我还没有完全搞清楚。我还读过关于 .htaccess 文件的内容,但 httpd.conf 中的 AllowOverride 设置为 None - 我可以更改它,然后开始学习 .htaccess,但我不知道是否还有其他方法,因为我没有设置这类东西的经验。

还有其他(较简单的)方法可以让 apache 在我的目录中查找静态资产吗?

答案1

我认为这是因为你的文档根目录是这样设置的

DocumentRoot "/sharedserver.url.com"

并且你想要的是这样的:

DocumentRoot "/sharedserver.url.com/mydiv/mydept/prototypes/dist"

并且目录路径必须与文档根目录相同

<Directory "/sharedserver.url.com/mydiv/mydept/prototypes/dist">

如果你这样做并使用你的域名网址,你将进入 index.html,并且你的脚本将正确显示

我希望这能解决你的问题

答案2

base我遇到了同样的问题,就我而言,这是由index.html 头部部分内的标签值引起的:

<base href="/">

这将相对 URL 的基本 URL 设置为服务器根目录。我可以通过删除/更改标签来解决这个问题base

我希望这有帮助。

相关内容