我目前正在与Symfony和VueJS一起从事一个项目。 Symfony是我的应用程序以及API的最前端,而VueJS则用作后台。
我想知道是否可以将两个项目都用相同的域名命名,并有区分它们的路径。
包括这一点,我还希望两个框架有一个唯一的联系。通常,我们保持与Symfony会话以及由Symfony API for VueJS提供的OAuth令牌保持联系。
为此,我现在每次有人成功连接到应用程序时都创建一个OAuth令牌,并将其保存到本地存储中,就像VueJS拥有的那样。
但是我现在需要将良好的配置放入nginx中,以便它们都可以在相同的域名下运行。
请不要犹豫告诉我要提供更多信息,我希望可以做到!如果没有,我愿意提出建议!
编辑:
location / {
try_files $uri /app.php$is_args$args;
}
location /admin {
alias /path/admin/public/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location ~ /public/dist/* {
alias /path/admin/public/dist;
try_files $uri $uri/ /index.html;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
通过这种配置,我设法访问了VueJS部分,几乎所有资源都已加载(错误地调用了一个资源)。 访问页面后,vueJS将启动,并将URL重写为/ admin / login。我可以登录,可以毫无问题地访问所有页面,但是当我重新加载时,nginx不再识别该路径,并且将我重定向到Symfony 404错误。
答案 0 :(得分:0)
当然,您可以使用“位置”指令完成所需的操作。
示例:
server {
listen 80;
server_name example.com;
location / {
# document root, proxy pass or whatever to vuejs.
}
location /api {
# document root, proxy pass or whatever to symfony.
}
}