2017-12-29 26 views
0

これは初心者の質問になる可能性があるので、事前にお詫び申し上げます。NGINXを使用した静的リソースリクエストをサブフォルダに書き直す

背景

私はこのような何かに見える静的バンドルがあります:しかし、ここでの状況である

<img src="/assets/image1.png" /> 
index.htmlインサイド

index.html 
assets/ 
├── image1.png 
└── image2.png 

が、私はこのようにイメージタグを持っています

したがって、ポート8000でローカルに静的サーバーをホストし、localhost:8000に行くと、ブラウザは0123へのリクエストを行いますとすべて正常に動作します。

問題

私のクライアントは、実際には、静的バンドルにhttp://example.com/portalを指すようにnginxのを使用しています。つまり、http://example.com/portalと入力すると、index.htmlページが表示されます。

彼は私のすべての静的資産に接頭辞/portalを置く必要があると言います。そうしないと動作しません。それは私のimgタグの代わりに上記のように見える必要があることを意味:私はそれをしない場合は

<img src="/portal/assets/image1.png" /> 

は、彼は、ブラウザではなくhttp://example.com/portal/assets/image1.pnghttp://example.com/assets/image1.pngを要求終わると言います。

私はこれに対応するために私が使用しているフレームワークをねじる必要があるので、これは私のためのものです。つまり、デベロッパー用のスクリプトをいくつか追加してビルドする必要があります。これは迷惑で、リポジトリを汚染します。

NGINXの設定に問題がありますか?あるいは、すべてのリンクに接頭辞/portalを追加する必要がありますか、NGINXの設定に問題がありますか?

私は彼のNGINX構成にアクセスすることはできませんし、NGINXの経験もあまりありません。

答えて

0

溶液をベースタグ

https://www.w3schools.com/tags/tag_base.aspを使用するのに十分に簡単です。

あなたはheadタグに

<head> 
<base href="/portal/"> 
</head> 

をごindex.html、以下を変更し、あなたは相対リンクの代わりに、絶対的であるためにあなたのリンクを変更します。だから、

<img src="/assets/image1.png" /> 

の下

<img src="assets/image1.png" /> 

に変更する必要があり、今、あなたはnginxの

/portalに静的ファイルを展開することができるようになります
関連する問題