2014-01-06 82 views
1

我鏈接我的CSS file使用assetSymfony2提供。 所以,我把它在我的layout.html.twig如下:相對路徑vs絕對路徑在Symfony2

<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,不應該嗎?

+0

與CSS無關。 – Ruddy

回答

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

  • asset('bootst說唱/ CSS/bootstrap.css')
    這將導致一個無效的路徑:%kernel.root_dir%/ ../webbootstrap /css/bootstrap.css

可是,爲什麼它的工作原理上你的電腦,而不是你的手機,我不能說太少的信息。