symfony 4公共文件夹中的图像NotFoundHttpException

时间:2018-02-08 15:15:39

标签: symfony

创建symfony项目

composer create-project symfony/skeleton cars
cd cars
php -S 127.0.0.1:8000 public/index.php
composer require annotations
composer require twig
composer require asset

创建页面

public/image/seta.png

templates/number.html.twig

    <img src="{{asset('image/seta.png')}}">

src/Controller/CarController.php

    /**
     * @Route("/")
     */
    public function number()
    {
       return $this->render('number.html.twig');
    }

为什么浏览器显示:

Symfony Exception > ResourceNotFoundException > NotFoundHttpException

找不到&#34; GET /image/seta.png" (来自&#34; http://localhost:8000/&#34;) (网页没有显示seta.png)

5 个答案:

答案 0 :(得分:1)

您遇到的问题是浏览器无法找到图像,因为您提供的路径不存在或客户端无法访问。这就是你的错误所表明的。

您需要先确认是否可以通过浏览器访问该图像。如果你不能,那么我建议你开始查看它的位置以及你使用的路径是否与它的位置相对应。

如果您确定文件路径正常并且图像存在并且它的名称与您正在调用的内容相对应,那么您应该检查图像所在的文件和文件夹权限,以便可以访问它。 / p>

答案 1 :(得分:0)

请检查HTML,此代码已呈现。

<img src="{{asset('image/seta.png')}}">

答案 2 :(得分:0)

变化

php -S 127.0.0.1:8000 public/index.php

php -S 127.0.0.1:8000 -t public

答案 3 :(得分:0)

Ronald2g是对的,您也可以尝试使用Web服务器包:

composer require server --dev

php bin/console server:start

答案 4 :(得分:0)

不确定它是否可以帮助您,但这可能会帮助其他遇到类似问题的人。

当我错误地使用命令行反馈中提供的内部端口号(以下示例中的端口42595)而不是端口8000时,我遇到了同样的问题:

$ symfony server:start --no-tls
  Feb 25 12:25:30 |DEBUG| PHP    Reloading PHP versions 
  Feb 25 12:25:31 |DEBUG| PHP    Using PHP version 7.4.2 (from default version in $PATH) 
  Feb 25 12:25:31 |INFO | PHP    listening path="/usr/bin/php7.4" php="7.4.2" port=42595
  Feb 25 12:25:31 |DEBUG| PHP    started 
  Feb 25 12:25:31 |DEBUG| PHP    PHP 7.4.2 Development Server (http://127.0.0.1:42595) started                                                                                                         
 [OK] Web server listening on 8000 http://127.0.0.1:8000 (PHP CLI 7.4.2)