我是一名前端开发人员 - 我刚刚继承了一台服务器(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
。
我希望这有帮助。