2015-11-19 58 views
0

我有以下我header.html.twigAssetic不從CSS圖片複製到網絡路徑

{% stylesheets filter='cssrewrite' '../src/SkaLab/Bundle/FrontEndBundle/Resources/public/css/styles.css' %} 
    <link rel="stylesheet" href="{{ asset_url }}" /> 
{% endstylesheets %} 

,並在我的CSS樣式表塊,我有以下行:

.container.login { 
    background:url('imgs/hand-tools-1.jpg'); 
} 

和在config.yml:

assetic: 
    debug:   "%kernel.debug%" 
    use_controller: false 
    bundles:  [ SkaLabFrontEndBundle ] 
    filters: 
     cssrewrite: ~ 

當我啓動assetic用下面的命令:

php app/console assetic:dump --env=dev 

它生成所有的網頁目錄,但我不明白爲什麼圖像在後臺網址沒有。 任何人都可以幫助我嗎? 我怎樣才能弄清楚在其他資源(如CSS和JS)的網絡路徑中的背景URL圖像(從CSS代碼)?

回答

0

首先,使用命令:

php app/console assets:install 

這將在您的網絡路徑和它的圖像生成包文件夾。

如果你把一個相對路徑在你的CSS,這將被解釋爲: yoursite.com/bundles/yourbundle/css

所以,如果你把imgs/hand-tools-1.jpg symfony會尋找在下面的路徑中的imgs文件夾。

最好的方法是使用絕對路徑。絕對路徑的/是您的網頁目錄(唯一一個公開的)。這樣你就可以改變你的圖像路徑:

.container.login { 
    background:url('/./yourPathToImgsFolderInWeb/imgs/hand-tools-1.jpg'); 
} 

例如:如果你有一個這樣的結構:

web 
    css 
    bundles 
     appbundle 
      imgs 
       hand-tools-1.jpg 

所以,你已經更換yourPathToImgsFolderInWebbundles/appbundle

+0

感謝你對朱利安您的反饋。在我的web目錄中我有css,js,bundles目錄;我不明白爲什麼如果我嘗試訪問CSS中的某些內容(如css/xxx.css)或js中的某些內容(如js/xxx.js),它是工作的,而如果我嘗試訪問bundles目錄中的某些內容網絡)它不起作用。你能給我一些關於這個問題的建議嗎? – sergioska

+0

我更新了我的答案。我試圖多解釋一下這個過程。 –

+0

非常感謝你Julien。也有你的幫助我弄清楚。我真正的問題是在.htaccess中。 – sergioska