Symfony2中的相对路径vs绝对路径

时间:2014-01-06 13:50:02

标签: symfony twig assetic

我使用CSS file提供的asset关联我的Symfony2。 所以,我将其包含在我的layout.html.twig中,如下所示:

<link href="{{ asset('/bootstrap/css/bootstrap.css') }}" rel="stylesheet" media="all">

然而,当我在手机和平​​板电脑上打开我的网站时,它在我的电脑上工作了。 CSS file未显示。我花了半天时间才发现问题,这让我发疯了。最后,我发现这是因为斜杠“/”引领了这条道路。所以,我把它删除了:

<link href="{{ asset('bootstrap/css/bootstrap.css') }}" rel="stylesheet" media="all">

它就像一个魅力!

我对这个问题做了一些研究。有人说正确的道路不应该是斜线。但是,为什么它在我的计算机上工作但在移动设备上不起作用?

注意 CSS file存储在web/bootstrap/css中。

在我看来,

asset('/bootstrap/css/bootstrap.css')asset('bootstrap/css/bootstrap.css')

应该最终返回相同的路径web/bootstrap/css,不应该吗?

1 个答案:

答案 0 :(得分:0)

简而言之,没有。这取决于您是否以及如何配置资产,特别是'read_from'值(see AsseticBundle-Doc)。

您的资产部分在config.yml中的外观如何?

假设你有:

assetic:
    read_from: "%kernel.root_dir%/../web"

现在有了这个,如果你使用:

  • 资产( '/引导/ CSS / bootstrap.css')
    这将产生一个有效的路径:%kernel.root_dir%/ .. / web / bootstrap /css/bootstrap.css

  • 资产( '自举/ CSS / bootstrap.css')
    这将导致无效路径:%kernel.root_dir%/ .. / webbootstrap /css/bootstrap.css

但是,为什么它在您的计算机上而不是在您的手机上运行,​​我不能说信息太少。