2016-08-03 175 views
5

我仍然有一些問題需要在symfony中處理我的資產。 best practices說,我應該存儲我的資產web/。 但我不喜歡在那裏存儲我的原始sass文件,因爲它是一個公共文件夾,我認爲只有編譯或靜態文件應該存儲在那裏。在Symfony3中組織資產

這就是爲什麼我存儲他們(js和sass)目前在app/Resources。而我的assetic.read_fromapp/Resources。但是有一些捆綁,由assets:installweb/bundles/

現在,當我想將這個捆綁資產包含在我的樹枝文件中時,我必須在樣式表塊中去../../web/bundles/..。這看起來不是很乾淨,所以我做了一個符號鏈接app/Resources/bundles->web/bundles/,這工作。

但我仍然認爲它太多小提琴,我想知道是否有更好的方法可以更好地收集我的資產。

回答

7

不要使用AsseticBundle,它甚至在默認的symfony標準2.8中被刪除。前端管理資產PHP是人誰真的不希望使用「合適的工具」

我親自把我的源文件/assets/與咕嚕JS我編譯他們/web/assets/後來從assets.somedomain.com通過提供解決方法CDN

2年前我用symfony寫過關於管理資產的文章,它仍然有效並且是最新的。你可能想看看它。

http://konradpodgorski.com/blog/2014/06/23/better-way-to-work-with-assets-in-symfony-2/

我應該的事情,我從那時起,但始終沒有足夠的時間:)

+0

多數民衆贊成多晚的反應,但我不想使用外部cdns或基於JavaScript的CSS管理。所以我更喜歡純php /服務器的方式來編譯和管理我的資產 – Asara

+0

我尊重您的決定,但仍然認爲這比設置正確的流程一次然後在每個項目中複製它更復雜。除非你沒有任何編譯器的情況下使用純粹的CSS,那麼只需將它們放在/ web/assets /中,你就可以去 –

0

瞭解到延長後,我不明白爲什麼你不能使用web/文件夾爲您的資產。

我經常使用less以及之後處理和縮小的其他文件格式。 解決您的問題對我來說似乎很簡單:在web/文件夾中使用兩個文件夾。

第一個文件夾將是您的source/文件夾。您可以在其中放置所有sass文件。您將在此文件夾中添加一個.htaccess文件,並拒絕所有訪問(您可以從src/文件夾中的.htaccess文件複製)。

然後第二個文件夾,我們稱之爲assets,它將保存所有您編譯和縮小的資產。

這應該做的伎倆...;)

您可能感興趣的this topic爲好。這可能有助於隱藏您的source/文件夾的存在。 ;)

如果你真的不想在web/文件夾中有你的源文件,然後loot at this,它應該可以幫助你將你的源文件放在你的包中。

+0

爲什麼我應該將我的資源存儲在一個通用/ web文件夾中?我想將它存儲在捆綁包本身內 – Asara

+0

主要是因爲Twig會從'web /'文件夾讀取資產。例如''link rel =「stylesheet」href =「{{asset('assets/style.css')}}」>'只有當assets文件夾位於'web /'目錄時纔有效。你的'source /'文件夾可以在你的包中。然後你可以嵌入一個小的服務,它將與你的CSS/JS的編譯器/縮小器一起工作,並將它寫入'web /'目錄。請記住良好的做法,重要的是要有一個平穩的工作項目。 ;) – Preciel

+0

@Asara現在是您選擇解決方案的時候了,康拉德和我都爲您提供了適合您問題的解決方案。無論如何,您的編制/縮小資產將會公開,沒有任何工作可做。我們都提供了一個解決方案來保護您的來源。 – Preciel

相關問題