Laravel gif 无法在 LEMP 服务器上运行

Laravel gif not working on LEMP server

谁能解释一下为什么 gif 在本地开发(使用 laravel 和 Valet)但在 LEMP 服务器上部署项目时不显示。 Gif 存储在服务器上的 storage/app/public 下,此目录与 chmod -R 777 一起使用。setTimeout 工作正常并且仅显示文本,加载程序 div 中缺少背景 gif。我在 blade 模板中的代码:

<script type="text/javascript">
    function loading(){
            $('body').append('<div class="loader"></div>');
            info();
        }
    }
    function info(){
        setTimeout(function(){
            $('.loader').append('<div class=info>XXX</div>');
        }, 2000);
    }
</script>

<style>
    .loader {
        position: fixed;
        left: 0px;
        top: 0px;
        width: 100%;
        height: 100%;
        z-index: 9999;
        background: url('page-loader.gif') 50% 50% no-repeat rgb(249,249,249);
        text-align: center;
        font-size: 24px;
    }
</style>

编辑位于 /etc/nginx/sites-available/default 的服务器配置。现在添加以下块以使您的服务器能够开始提供图像和其他静态文件。

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {   
  # Set expiry time for static content
  expires 1d;   
  # Set the Cache Control header 
  add_header Cache-Control "public";
}

按照上面的建议修改了nginx默认文件。仍然没有工作,但后来我将 gif 位置从 storage/app/public 更改为 /public 索引文件在哪里,现在它可以工作了。

更新 - 我发现你必须 运行 "php artisan storage:link" 命令 link 存储到 laravel 中的 public 文件夹才能访问文件存储