【问题标题】:Image doesn't show when using Silex and Twig使用 Silex 和 Twig 时图像不显示
【发布时间】:2014-08-07 08:03:48
【问题描述】:

我使用Silex-Skeleton。 Twig 布局存在于模板目录 (templates/layout.html) 中。我将图像存储在 web/img 目录(top.jpg)中。我也使用内置的php5.4服务器运行:

php -S localhost:8000 web/index_dev.php

在 templates/layout.html 我想使用 web/img/top.jpg 图片。所以我放在那里:

<img src="{{ app.request.basepath }}/img/top.jpg">

但图片不显示。

我也试过了:

<img src="/img/top.jpg">
<img src="/web/img/top.jpg">

但也没有成功。

我的控制器看起来像(index.html extends layout.html):

$app->get('/', function () use ($app) {
  return $app['twig']->render('index.html', array());
})->bind('homepage');

我应该怎么做才能使图像正常工作?

【问题讨论】:

  • Louis van Tonder - 感谢您的编辑。我想将问题更改为正确的问题,但在编辑时我仍然收到代码格式错误的消息...问题应该是:Silex + Twig - 图像不显示
  • 这不是meta.stackoverflow.com的问题吗?
  • @jacekpl 你应该可以编辑你自己的问题
  • 我是这么认为的,但是当我单击编辑和保存(根本没有编辑)时,我收到一条消息“您的帖子似乎包含未正确格式化为代码的代码。请缩进所有代码4 个空格,使用代码工具栏按钮或 CTRL+K 键盘快捷键。有关更多编辑帮助,请单击 [?] 工具栏图标。"。对我来说很奇怪。
  • @jacekpl ,可能是您浏览器中的插件干扰了格式化?编辑工作正常...我只是从 pastebin 中粘贴了您的代码...没有更改 1 个单个字符。

标签: symfony twig silex


【解决方案1】:

您可以直接导航到http://localhost:8000/web/img/top.jpghttp://localhost:8000/img/top.jpg 吗?如果您无法直接浏览和查看它们,它们将不会呈现,因为浏览器也无法找到它们以显示在您的页面上。

您的图片实际上是否在 /web 文件夹中或之下? (即它们不应该在您的 /templates 文件夹中)

也许您可以尝试在启动 PHP webserver 时显式设置 docroot 并使用 -t 选项。

否则我会建议设置一个真正的 Web 服务器,如 Apache。如果您运行的是 OS X 或 *nix,您的操作系统可能已经安装了它。

【讨论】:

  • 你是对的!我无法访问 web/ 文件夹下的图像。使用 -t 参数运行并且没有 index_dev.php 文件有帮助(php -S localhost:8000 -t web/)。谢谢。
猜你喜欢
  • 2012-03-19
  • 2017-10-15
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
  • 2016-05-20
相关资源
最近更新 更多