nginx 中禁止使用公共文件夹

nginx 中禁止使用公共文件夹

我已成功将 Laravel 应用程序部署到 Digital Ocean。但我的 CSS 和 JS 文件为 403(禁止访问)。我在控制台中看到以下错误:

net::ERR_ABORTED 403 (Forbidden)

在我的 Nginx 配置中,如何授予我的应用程序访问CSS- 和- 文件的权限?JS

nginx 配置

// nginx configuration
server {
    listen 80;
    server_name DOMAIN_NAME_OR_IP_ADDRESS;
    root /var/www/name_of_repo/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ .php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.(?!well-known).* {
        deny all;
    }
}

我试过了sudo chown -R www-data.www-data public,但问题仍然存在。

目前该网站已加载,无需CSSnor JS

答案1

正如你提到的你的评论,我认为最后一个位置块应该是这样的:

location ~ /\.(?!well-known).* {
  deny all;
}

第一个句点需要转义,否则它会匹配任何字符。

相关内容