Laravel 5的旅行者:图像的错误路径

时间:2017-06-20 08:06:40

标签: php laravel-5 voyager

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

我在Google Chrome浏览器中查看了控制台,发现了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还有什么问题。

10 个答案:

答案 0 :(得分:2)

首先你需要编辑文件.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',
         ],

我得到了帮助

答案 1 :(得分:2)

请按照以下步骤操作:

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

例如:

APP_URL=http://localhost

APP_URL=http://127.0.0.1:8000

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

php artisan storge:link

3。重新启动服务器(必须。否则,将不会应用更改)。

答案 2 :(得分:1)

这是一个常见的问题,甚至提到航海家的官方网站也只是阅读此页https://voyager.readme.io/docs/using-https-on-your-site

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

答案 3 :(得分:0)

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

所以你可以尝试:

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

答案 4 :(得分:0)

更新的.env文件:

APP_URL=http://localhost:8000

已解决的问题

别忘了重启服务器

答案 5 :(得分:0)

更新的.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',
 ],

答案 6 :(得分:0)

您需要做的只是更改.env

APP_URL = http://localhost

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

然后将图片文件移至

public users

出于某种原因,旅行者将它们存储在

public users\users

至少对我有用 只需检查Voyager为化身创建的URL,然后将它们移到具有相同URL的公用文件夹中即可。

至少为我工作

答案 7 :(得分:0)

更新您的.env文件

APP_URL=http://localhost:8000

然后运行

php artisan config:clear

最后

重新开始服务

这对我有用。

答案 8 :(得分:0)

更改 .env 文件中的一行:

APP_URL = http://localhost

APP_URL = http://<your site url>

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

php artisan config:cache

答案 9 :(得分:0)

如果您使用laragon,请更改

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

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