
フロントエンド開発者です。ネットワーク内でプロトタイプをホストするためのサーバー(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
タグを削除/変更することで問題を解決できました。
これが役に立つことを願っています。