【发布时间】:2020-05-15 06:39:09
【问题描述】:
我有两个应用程序在 react 中开发的情况。
- 用户应用
- 管理应用
我构建了这两个应用程序并将用户应用程序构建放置在 site 目录中,而管理员应用程序构建位于 site/admin 目录中
我想要的是
当有人尝试www.mydomain.com/admin 时,它应该转到 admin 目录,如果 url 中没有给出管理员,那么它不应该寻找管理员,而是应该提供用户文件。
我愿意以任何可能的方式更改目录结构以使此网址按预期工作。
我已经付出了很多时间和尝试,但未能达到结果。我遗漏了一些东西,可能与try_files 配置有关,但我还不确定。
以下是我迄今为止为我的需要创建的 Nginx 文件。
如果我写mydomain.org/admin,它工作正常。
但是当我写mydomain.org/admin/{someotherparam e-g dashboard} 时,它会加载主用户反应应用程序而不是管理应用程序。我猜在这种情况下它会读取用户的索引文件。如果/admin/首先在url中,如何读取admin的索引文件。
我对nginx的配置了解不多,你google了一下。
如果我将管理目录和用户目录分开,我只剩下一项任务要做。 但是我将不得不做我不想要的 domain.org/user 和 domain.org/admin。 我希望管理员仅在 url 之后的 url 中有管理员时才做出反应。
我不知道如何让它发挥作用。
server {
listen 80;
listen [::]:80;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name mydomain.org www.mydomain.org;
location / {
root /var/www/mydomain.org/html/frontend/site;
try_files $uri $uri/ /index.html;
}
location /admin(.*) {
root /var/www/mydomain.org/html/frontend/site/admin;
try_files $uri $uri/ /index.html;
}
}
我在 ubuntu 18 上使用 LEMP。
【问题讨论】:
标签: reactjs nginx server digital-ocean