【问题标题】:Voyager for Laravel 5: Wrong paths for imagesLaravel 5 的航海者:图像路径错误
【发布时间】:2017-11-22 15:49:51
【问题描述】:

通过 Voyager 创建新用户后,头像显示为损坏的图像。我上传了一张新图片,但图片仍然损坏。

我在谷歌浏览器中使用控制台检查,发现 3 404 错误:

2017-06-19 10:53:50.159 http://localhost:8888/storage/users/June2017/ypKlbqbATDbpnYctZBFp.png 加载资源失败:服务器响应状态为 404 (未找到)

2017-06-19 10:53:50.256 http://localhost:8888/storage/users/June2017/ypKlbqbATDbpnYctZBFp.png 加载资源失败:服务器响应状态为 404 (未找到)

2017-06-19 10:53:50.473 http://localhost:8888/vendor/tcg/voyager/assets/images/bg.jpg 失败 加载资源:服务器响应状态为 404(不是 找到)当我查看项目时,2个存储的路径 错误是:http://localhost:8888/storage/app/public/users/ 和: http://localhost:8888/storage/app/public/users/June2017

在 Media 中,我在浏览文件夹时遇到了类似的路径问题:

2017-06-19 11:38:22.248 %7B%7B%20selected_file.path%20%7D%7D:1 GET http://localhost:8888/development/PhpstormProjects/Search4Venues/public/admin/%7B%7B%20selected_file.path%20%7D%7D 404(未找到)

预测问题,在.env,我有:APP_URL=http://localhost:8888

这是配置错误吗?

编辑

一位比我更有经验的同事通过 Voyager 发现了一些不一致的地方,他试图解决这些问题。

app.php,我们不得不改变:

'url' => env('APP_URL', 'http://localhost:8888/development/PhpstormProjects/Search4Venues'),

...到:

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

filesystems.php,我们不得不改变:

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

...到:

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

但是,他在config/voyager.php中发现了其他问题:

'assets_path' => '/vendor/tcg/voyager/assets',

...路径中似乎也缺少PhpstormProjects/Search4Venues

http://localhost:8888/vendor/tcg/voyager/assets/images/bg.jpg

在这个阶段,我们不知道 Voyager 还有什么问题。

【问题讨论】:

  • 我有类似的问题,根据文档我知道 localhost:8000 应该是 .env 值。

标签: php laravel-5 voyager


【解决方案1】:

这是一个常见的问题,即使是 voyager 的官方网站也提到了,只需阅读此页面https://voyager-docs.devdojo.com/troubleshooting/using-https

在夏季只需打开文件夹config 中的文件filesystem.php 并删除这行代码'url' => env('APP_URL').'/storage',

【讨论】:

  • 另外,请注意您需要使用资产包装 Voyager::image('...'),例如。资产(航海者::图像(''))。这是正确的答案。
【解决方案2】:

如果您使用 laragon,请更改

'url' => env('APP_URL').'/storage'

'url' => env('APP_URL').'./storage'

【讨论】:

    【解决方案3】:

    .env文件改一行:

    APP_URL = http://localhost
    

    APP_URL = http://<your site url>
    

    该命令用于删除配置缓存文件并重新创建。

    php artisan config:cache
    

    【讨论】:

      【解决方案4】:

      更新您的 .env 文件

      APP_URL=http://localhost:8000
      

      然后运行

      php artisan config:clear
      

      最后

      重启你的服务

      这对我有用。

      【讨论】:

        【解决方案5】:

        你需要做的就是改变 .env

        APP_URL = http://localhost
        

        APP_URL = http://<whatever your site is called>
        

        然后移动到图片文件去

        public users
        

        出于某种原因,航海者将它们存储在

        public users\users
        

        至少对我有用 只需检查 Voyager 为头像创建的 URL 并将它们移动到具有相同 URL 的公共文件夹中。

        至少为我工作

        【讨论】:

          【解决方案6】:

          更新的 .env 文件:

          APP_URL=http://localhost/voyager
          

          并更新了 filesystems.php

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

          【讨论】:

            【解决方案7】:

            按照以下步骤操作:

            1.将.env文件中的APP_URL改为您的网站网址

            例如:

            APP_URL=http://localhost
            

            APP_URL=http://127.0.0.1:8000
            

            2.通过以下方式创建符号链接:(如果尚未完成)

            php artisan storge:link
            

            3.重新启动您的服务器(必须。否则将不会应用费用。)

            【讨论】:

              【解决方案8】:

              更新的 .env 文件:

              APP_URL=http://localhost:8000
              

              已解决的问题

              别忘了重启服务器

              【讨论】:

                【解决方案9】:

                如果我们使用默认端口(如 localhost:8000)运行 php artisan serve,有时通常会显示此错误,但如果您将 laravel wit voyager 放在您自己的服务器(如 xampp/mamp 等)的 htdocs/www 中,此错误就会消失,

                所以你可以试试:

                1. 安装 apache 或独立网络服务器,如 wamp 或 mamp
                2. 将您的项目放在 htdoc/www 文件夹中,不要忘记设置 .env app_url:localhost(或您的域没有端口)
                3. 将 apache 配置中的文档根目录更改为您的项目文件夹
                4. 访问http://[your_domain]/[your_project]
                5. 完成..

                谢谢

                【讨论】:

                  【解决方案10】:

                  首先你需要编辑文件 .env:

                  APP_URL=http://localhost
                  

                  到:

                  APP_URL=http://yout-site-url
                  

                  之后你需要像这样编辑文件 fylesystem.php:

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

                  我得到了帮助

                  【讨论】:

                    猜你喜欢
                    • 2020-04-26
                    • 2021-06-25
                    • 2020-06-04
                    • 2019-08-12
                    • 1970-01-01
                    • 2014-05-27
                    • 2018-06-05
                    • 2015-08-23
                    • 1970-01-01
                    相关资源
                    最近更新 更多