【问题标题】:Cannot access files inside web folder Symfony (route not found)无法访问 Web 文件夹 Symfony 中的文件(找不到路由)
【发布时间】:2014-06-18 21:10:48
【问题描述】:

我创建了一个名为 img 的文件夹,其中包含一些图像。但是,当我尝试在 url 中访问它时,例如:

http://mydomain.dev/app_dev.php/img/1.png

没用

Symfony 向我返回一条错误消息:No route found for "GET /img/1.png"

但是,如果我执行以下操作:

http://mydomain.dev/img/1.png

有效!

我正在使用 Apache 并在 Mac OSX Mavericks 上运行它。

如何在 app_dev.php 中访问它,即使它不是路由而是文件?

【问题讨论】:

  • 我对 symfony 了解不多,但通常规则是:“如果文件不存在通过 app_dev.php 路由它”,因此您可能需要检查您的 .htaccess 文件并重写规则。我认为您不需要现有文件的路由(尤其是资产)
  • 了解 Symfony2 中的生产开发模式:)。

标签: php symfony


【解决方案1】:

如果您将图像插入 web/img/1.png 并希望在 twig 文件中指向它,请尝试:

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

【讨论】:

  • 听起来很有趣!如果我需要css文件中的路径,你有什么建议?
  • 同理:)
  • @jakon 对不起,我的意思是在 css 文件中,比如在 background-color: url('img/1.png')
  • @CoachNono 要在 CSS 文件中设置这些路径,您应该使用 Assetic。它可以重写CSS文件中的路径,见symfony.com/doc/current/cookbook/assetic/…
【解决方案2】:

app_dev.php 将您的请求映射到路由器,路由器将请求转发到特定控制器。不要期望到静态文件的有效路由。 静态文件可以添加完整的文件路径(ofc。你的静态文件应该在你的网络目录中),或者Twig,它可以呈现当前文件路径。

【讨论】:

  • less 过滤器是如何工作的?它映射 css 文件夹中的文件。或者 /bundles/name/files 中的文件,它们没有映射到 app_dev.php 中吗?
  • 您的捆绑公共目录中的文件从您的视图中“映射”。它与路由器没有什么共同之处。在此处阅读有关 statis 文件的路径:symfony.com/doc/current/book/templating.html#linking-to-assets
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2016-08-04
  • 2016-10-14
  • 1970-01-01
  • 2014-08-17
相关资源
最近更新 更多