サーバーのルートサブディレクトリから静的アセットを提供するように 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">

このようにドメインURLを使用すると、index.htmlに移動し、スクリプトが正しく表示されます。

これで問題が解決することを願っています

答え2

base私も同じ問題を抱えていましたが、私の場合はindex.html の head セクション内のタグの値が原因でした。

<base href="/">

これにより、相対 URL のベース URL がサーバー ルートに設定されました。baseタグを削除/変更することで問題を解決できました。

これが役に立つことを願っています。

関連情報