我知道无论如何这都不是理想的设置,但是我希望有人可以帮助我使这种情况发挥作用。本质上,我两个都有:
Vue SPA应用程序
Codeigniter(CI)PHP应用程序
我实际上是在尝试避免将静态Vue应用嵌入到Codeigniter中(似乎有额外的开销),并避免使用代理方法,因为它是静态内容,不需要运行Node。
到目前为止,这是我对Nginx配置的尝试:
/ etc / nginx / sites-available / default
server {
root /var/www;
index index.php index.html;
location / {
# Codeigniter
try_files $uri $uri/ /index.php?/$request_uri;
# Vue SPA
if ($uri ~ '') {
root /var/www/path_to_spa/dist;
}
}
}
我已经成功为这两个应用程序硬连接了资产路径。
这似乎足以在Vue和CI应用程序之间进行路由,但是CI应用程序现在无法处理POST和重定向请求,因为我收到404s-可能是因为URI检查松散。
Nginx禁止有条件的(如果) try_files 语句,因此我觉得自己的双手束缚不住。想知道是否有人可以在这里提供更好的解决方案:)
答案 0 :(得分:0)
如果您已经配置好,并且只对POST请求给出错误,也许您可以检查它是否为POST?
server {
set $vue 0;
root /var/www;
index index.php index.html;
location / {
# Codeigniter
try_files $uri $uri/ /index.php?/$request_uri;
if( $uri = '' ) {
set $vue 1;
}
if ($request_method = POST ) {
set $vue 0;
}
#Vue SPA
if( $vue = 1 ) {
root /var/www/path_to_spa/dist;
}
}
}
未经测试,但我认为您可以使其正常运行。干杯!