【问题标题】:Laravel Valet not serving jpeg files with no extensionLaravel Valet 不提供没有扩展名的 jpeg 文件
【发布时间】:2016-09-17 09:54:04
【问题描述】:

Laravel Valet 提供 jpeg 文件,没有扩展名,大小错误,当然也更改了校验和。 我正在发布有关示例文件的信息,末尾带有.0 的文件是通过代客下载的。

$ls -la
f2b40f33d19b147bc8d0e88f4b8c489e35c165dd
-rw-r--r--   23905
f2b40f33d19b147bc8d0e88f4b8c489e35c165dd.0
-rw-r--r--   23750 

$ls -la
$ md5 f2b40f33d19b147bc8d0e88f4b8c489e35c165dd
MD5 (f2b40f33d19b147bc8d0e88f4b8c489e35c165dd) = 9b5d3e104764e4b4c2b9e942704091f1
$ md5 f2b40f33d19b147bc8d0e88f4b8c489e35c165dd.0
MD5 (f2b40f33d19b147bc8d0e88f4b8c489e35c165dd.0) = 944e47ce0ccd4da18b7761af0e5f0226

我尝试向 CaddyFile 添加 mime,但似乎 caddy 不支持对没有扩展名的文件进行 mime。我尝试了以下方法:

mime . image/jpeg
mime .* image/jpeg
mime * image/jpeg

带有.jpeg 扩展名的相同文件正常,有什么问题?

【问题讨论】:

    标签: laravel laravel-valet caddy caddyfile


    【解决方案1】:

    Valet 使用 ValetDriver.php 中的 mimes.php 根据文件扩展名确定正确的内容类型:

    ...
    "jpeg" => "image/jpeg",
    "jpg" => "image/jpeg",
    "jpe" => "image/jpeg",
    ...
    

    您可以在此处添加空扩展名,以将没有扩展名的所有内容作为图像/jpeg 提供

    "" => "image/jpeg"
    

    但是,Valet 不应该服务带有空扩展名的文件,您会收到破坏图像的通知

    Notice: Undefined index: extension in ...cli\drivers\ValetDriver.php on line 121
    

    作为一种快速破解方法,您可以更改 ~/.composer/vendor/cli/drivers/ValetDriver.php 中的第 121 行以隐藏通知

    @$extension = pathinfo($staticFilePath)['extension'];
    

    【讨论】:

    最近更新 更多