【问题标题】:Laravel 8 Jetstream profile-photos not showingLaravel 8 Jetstream 个人资料照片未显示
【发布时间】:2023-03-22 12:12:01
【问题描述】:

Laravel 8 和 jetstream,真的是新的吗?

我刚刚尝试在 fortify 中安装和播放它,但我真的不明白为什么我的个人资料照片没有显示图片。

update-profile-information-form

<!-- Current Profile Photo -->
<div class="mt-2" x-show="! photoPreview">
<img src="{{ $this->user->profile_photo_url }}"
          alt="{{ $this->user->name }}"
          class="rounded-full h-20 w-20 object-cover">
</div>

.Env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:6IJbdi+QYczKeLT7yOw3OgPsHucXn1KxVUb27hTQKpU=
APP_DEBUG=true
APP_URL=http://127.0.0.1:8000

配置/文件系统

'public' => [
            'driver' => 'local',
            'root' => storage_path('/public/storage'),
            'url' => env('APP_URL').'/public/storage/',
            'visibility' => 'public',
        ],

【问题讨论】:

    标签: laravel jetstream


    【解决方案1】:

    头像保存成功了吗?

    (窗口)如果是,这些是我修复它的步骤:

    • 删除在 /project/public/ 创建的快捷方式文件夹存储
    • 再次使用命令php artisan storage:link
    • 刷新网页就解决了。

    【讨论】:

      【解决方案2】:

      你需要先在public下创建storage,然后再链接。因此,首先转到 laravel 项目主文件夹,然后转到 public 文件夹。如果存储链接不存在,请创建它。然后回到项目主文件夹并创建存储链接

      $  cd (laravel project folder)
      $  cd public
      $  rm -r storage
      $  cd ..
      $  php artisan storage:link
      

      它应该可以解决问题..

      【讨论】:

      • 提醒一下,对于那些使用 Laravel Sail 的用户,您需要 sail artisan storage:link 而不是 php artisan。
      【解决方案3】:

      我这样做了:删除 filesystems.php 上的 (APP_URL) 这解决了我的问题,个人资料图片没有显示在 jetstream 上

      'public' => [
                  'driver' => 'local',
                  'root' => storage_path('app/public'),
                  'url' => env('').'/storage',
                  'visibility' => 'public',
              ],
      

      【讨论】:

      • 这最终让我遇到了问题,即我的 APP_URL 没有在 .env 文件中正确设置。
      【解决方案4】:

      我也这样做了:从 config/filesystems.php 中删除了 (APP_URL)

      'public' => [
                  'driver' => 'local',
                  'root' => storage_path('app/public'),
                  'url' => env('').'/storage',
                  'visibility' => 'public',
              ],
      

      但这对我来说只解决了一半的问题。该图像现在仅显示在导航栏中,但仍未显示在个人资料页面中。 为了做到这一点,我这样做了: 在 update-profile-information.blade.php 文件中,我将图像源更改为

      /storage/profile-photos/{{basename($this->user->profile_photo_path)}}
      

      (可能不是一个合适的解决方案,但它目前在我的学习项目中对我有用)

      【讨论】:

      • 您应该编辑您的.env 并设置APP_URL=http://localhost 例如(取决于您是否使用xampp 或其他)。
      【解决方案5】:

      在 config/app.php 中,APP_URL 可能需要一个类似的端口:

      'url' => env('APP_URL', 'http://localhost:8080'),

      【讨论】:

        【解决方案6】:

        您的问题是 .env 文件中的默认 APP_URL 设置:

        APP_NAME=Laravel
        APP_ENV=local
        APP_KEY=base64:6IJbdi+QYczKeLT7yOw3OgPsHucXn1KxVUb27hTQKpU=
        APP_DEBUG=true
        APP_URL=http://localhost
        

        artisan serve 命令在http://127.0.0.1:8000 上启动了应用,因此您相应地更改了 APP_URL:

        APP_URL=http://127.0.0.1:8000
        

        我不建议这样做。有时,由于各种原因,该命令可能会将端口更改为 8001、8002 等。

        $ php artisan serve
        Starting Laravel development server: http://127.0.0.1:8000
        Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
        Starting Laravel development server: http://127.0.0.1:8001
        PHP 7.4.12 Development Server (http://127.0.0.1:8001) started
        

        简单的解决方案

        只需评论或将 .env 文件中的 APP_URL 留空:

        #APP_URL=http://localhost
        APP_URL=
        

        这将从个人资料图像中删除 http://localhost 部分并解决问题:

        <img src="/storage/profile-photos/photo.jpeg">
        

        无论如何,您在生产环境中都会有不同的 .env 文件。

        另外

        您在 config/filesystems.php 文件中做了一个小改动:

        'public' => [
            'driver' => 'local',
            'root' => storage_path('/public/storage'),
            'url' => env('APP_URL').'/public/storage/',
            'visibility' => 'public',
        ],
        

        原来的设置是:

        'root' => storage_path('/app/public'),
        

        它只有在您删除并重建符号链接后才有效。
        但是现在,在你的项目目录中,你可能会遇到这样的情况:

        - 公共 - 存储 + css - 应用程序 + js - 公开 - 存储 - 个人资料照片 - 公开 - 公开 - 存储 - 存储 - 个人资料照片 - 个人资料照片 .htaccess + 框架 favicon.ico + 日志 索引.php 混合清单.json 机器人.txt 网络配置

        基本上,您制作了一个新磁盘。我想这不是故意的。
        此外,您的个人资料照片的网址中可能有一些令人困惑的部分:
        .../storage/public/storage/profile-photos/...

        您可以恢复到原始设置,删除附加文件夹,然后重建系统链接。

        config/filesystems.php

        'disks' => [
            //...
            'public' => [
                'driver' => 'local',
                'root' => storage_path('app/public'),
                'url' => env('APP_URL').'/storage',
                'visibility' => 'public',
            ],
            //...
        ],
        

        【讨论】:

          【解决方案7】:

          config 文件夹中找到名为 jetstream.php 的文件,并在返回的数组中查找 'features' 键并取消注释 Features::profilePhotos() 值。

          之前:

          'features' => [
              // Features::profilePhotos(),
              // Features::api(),
              // Features::teams(),
          ],
          

          之后:

          'features' => [
               Features::profilePhotos(),
              // Features::api(),
              // Features::teams(),
          ],
          

          【讨论】:

          • 不客气,伙计。很高兴知道它确实解决了您的问题。
          【解决方案8】:

          对不起,这个问题我已经解决了

          1. 在名为 jetstream.php 的配置文件夹中找到该文件,并在返回的数组中查找“功能”键并取消注释 Features::profilePhotos()

          2. 转到 .env 并将应用程序 uri 更改为此 APP_URL=http://localhost:8000

          3. 在终端输入:

          php artisan serve
          

          【讨论】:

            【解决方案9】:

            在 .env 中设置你的 APP_URL,我的是 APP_URL=http://localhost:8000 并在 CLI 中运行命令为

            php artisan storage:link
            

            要为 storage/app/public 创建符号链接,如果您尚未运行该命令,您将无法在仪表板中获取配置文件图像。

            【讨论】:

              【解决方案10】:

              使您的 .env APP_URL 正确,并确保运行 php artisan storage:link。 https://github.com/laravel/framework/issues/34319#issuecomment-691677346

              【讨论】:

                【解决方案11】:

                我在使用 Laravel 8(当前最新版本)处理我的项目时遇到了同样的问题 以下是我解决此问题的两种方法:

                1. 在第一种方法中,您可以轻松地将浏览器中的应用程序 URL 从 127.0.0.1:8000 更改为 localhost:8000,然后使用命令 php artisan storage:link

                2. 或者在第二种方法中,您可以编辑环境文件。转到环境配置文件 (.env) 并将 APP_URL 从 http://localhost 更改为 http://127.0.0.1:8000 然后使用命令将 public/storage 与 storage/app/public 文件夹链接 php artisan storage:link

                最后,使用命令php artisan serve重新启动应用程序,现在它必须工作了。我希望它可以帮助任何面临此类问题的人。

                【讨论】:

                  【解决方案12】:
                     'public' => [
                          'driver' => 'local',
                          'root' => storage_path('app/public'),
                          'url' => '/storage',
                          'visibility' => 'public',
                      ],
                  

                  嗨嗨嗨

                  【讨论】:

                    【解决方案13】:

                    我遇到了同样的问题,只运行 php artisan storage:link 就可以了。

                    注意:我在 laravel 的全新启动时运行此命令,并没有更改我的存储路径设置(默认)

                    【讨论】:

                      【解决方案14】:
                      • 转到配置文件夹并打开 (jetstream.php) 文件。
                      • 转到功能部分并取消注释个人资料照片功能

                      【讨论】:

                        【解决方案15】:

                        如果您的 Jetstream 个人资料照片未显示您必须执行简单的 3 个主要步骤

                        1. 首先运行这个命令php artisan storage:link
                        2. Features::profilePhotos(),从 config/jetstream.php 启用它
                        3. 最后,主要是从 .env 文件中更改 APP_URL(这很重要),如果您的 APP_URL=http://localhost 这不会显示给您,请将其更改为 APP_URL=http://127.0.0.1:8000 或者如果您使用的是虚拟主机,则 APP_URL= http://livewire_app.dev 看到这对我来说很好

                        【讨论】:

                          【解决方案16】:

                          首先,我们假设您已经在 profilePhoto 的 config/jetstream 功能中启用

                          将 your.env 文件更改为已启动的 artisan serve 链接。像这样

                            APP_URL=http://127.0.0.1:8000
                          

                          他们执行这些命令

                          1. php artisan storage:链接
                          2. php 工匠优化
                          3. php 工匠配置:清除

                          重新加载或再次上传您的照片资料并完成

                          【讨论】:

                            猜你喜欢
                            • 2021-06-23
                            • 1970-01-01
                            • 2015-11-18
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2013-08-12
                            • 2022-01-07
                            • 1970-01-01
                            相关资源
                            最近更新 更多