2016-12-20 3 views
0

私は次のようなメカニズムを提供するtry_filesディレクティブを使用しようとしている:私は、静的なファイルを共有フォルダを持っている:try_filesのNginx置換フォルダ?

. 
├── _shared 
│   └── assets 
│    ├── favicon.ico 
│    └── logo.png 
├── website1 
│   └── assets 
│    └── favicon.ico 
├── website2 
│   └── assets 
│    └── logo.png 
└── website3 
    └── assets 
     └── hello.txt 

私の目標は次のとおりです。要求されたファイルがあれば、そうでない、それを返す、ウェブサイトフォルダを存在する場合ファイルは、それを返す、フォルダを_shared に存在する他の404

例:

  • HTTP GET website1.com/assets/favicon.ico - (/website1/assets/favicon.icoから)> 200
  • HTTP GET website1.com/assets/logo.png - (/_shared/assets/logo.pngから)> 200
  • HTTP GET website2.com/assets/favicon.ico - (/_shared/assets/favicon.icoから)> 200
  • HTTP GET website2.com/assets/logo.pngから
  • website2/assets/logo.pngから)> 200 HTTP GET website3.com/assets/hello.txt - > 200(website3/assets/hello.txtから)
  • HTTP GET website1.com/assets/hello.txt - > 404

try_filesでそれを行うことはできますか?どうやって ?もしそうでなければ、他の何かと一緒にできるのでしょうか?

注:成功していないthisを試してみてください。

答えて

0

次の設定が有効です。 website1の場合:

location /assets { 
    root /website1; 
    try_files $uri @default_assets; 
} 

location @default_assets { 
    root /_shared; 
} 
関連する問題