使用Laravel API + vuejs进行Nginx配置

时间:2018-04-14 23:52:17

标签: laravel nginx vue.js

我在vuejs上有前端的应用程序,它通过后端的laravel api工作。我使用Laravel Passport进行授权。 当我通过localhost:8000上的集成laravel web服务器(artisan serve)启动应用程序时,它运行良好,没有任何错误。 但当我把它移到我的本地网络服务器时,我遇到了一些问题。

当我尝试发布帖子时

axios.post('http://project.local/oauth/token', data)

我收到http错误 405(方法不允许)。 我从CSRF令牌中排除了所有路由,添加了CORS头,无论如何它都不起作用。正如我在localhost:8000上所说,它运作良好。

我没有找到有关此问题的任何信息,也无法自行完成。有人知道吗?提前谢谢。

我的nginx配置

    server {
    listen  80;

    root /home/me/project/frontend/dist;
    index index.html index.php;
    server_name project.local;

    access_log off;
    error_log /home/me/project/backend/error.log notice;

    location / {
    index index.html;
            try_files $uri $uri/ /index.html?$args;
    }

    location /api/v1 {
         root /home/me/project/backend/public;
         rewrite ^/api/v1/(.*)$ /$1 break;
         try_files $uri $uri/ /index.php?$query_string;
    }

    location /oauth/token {
        root /home/me/project/backend/public;
        rewrite ^/oauth/token/(.*)$ /$1 break;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {

            set $newurl $request_uri;
            if ($newurl ~ ^/api/v1(.*)$) {
                set $newurl $1;
                root /home/me/project/backend/public;
            }

            if ($newurl ~ ^/oauth/token(.*)$) {
                set $newurl $1;
                root /home/me/project/backend/public;
            }

            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param REQUEST_URI $newurl;
            fastcgi_param SCRIPT_FILENAME 
        $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }
    location ~ /\.ht {
            deny all;
    }
}

1 个答案:

答案 0 :(得分:0)

也许是一个缓存!我刚刚解决了这个问题,结果是缓存cloudflare

将所有文件缓存为 index.html