[英]Symfony2 / Twig : Generate Alternate Absolute URL Path for use with CDN?
這個stackoverflow解決方案幾乎回答了我的問題。 但我想在Twig
生成CDN網址,而不僅僅是資源。 我想為動態內容生成它們。 因此,我不認為Assetic調整是正確的領域。
現在,我可以在parameters.ini
設置CDN_url並在我的網址中使用它。 我的代碼看起來像這樣: {{CDN_Url}}{{url('route',{'param1':'value'}}
..代碼維護是我不喜歡這個選項的一個主要原因。然后你可以做比如檢查/cdn/
的路由來生成CDN網址和其他所有基於域的內容。我不需要改變很多變量。如果我想阻止CDN網址生成。我可以修改路線。所以要弄清楚是否有一個干凈的解決方案有很多好處。
如果,還沒有解決方案 - 我將如何開始擴展{{ url() }}
功能,以便我可以像path
和url
一樣使用它。
您可以通過以下方式在您鏈接的問題的幫助下完成此操作
{{ asset(path('route',{'param1':'value'})) }}
如果您需要處理多個CDN域,可以按照以下方式執行
在app/config.yml
# app/config.yml
#....
templating:
engines: ['twig']
packages:
cdn1:
base_urls: ["http://cdn1.domain.com"]
cdn2:
base_urls: ["http://cdn2.domain.com"]
然后在你的twig模板文件中
{{ asset('path/of/file', 'cdn1')
要么
{{ asset('path/of/file', 'cdn2')
我不知道CDN的東西,但就擴展url功能,請看看:
Symfony的\\橋\\嫩枝\\延期\\ RoutingExtension
public function __construct(UrlGeneratorInterface $generator)
{
$this->generator = $generator;
}
public function getFunctions()
{
return array(
'url' => new \Twig_Function_Method($this, 'getUrl'),
'path' => new \Twig_Function_Method($this, 'getPath'),
);
}
public function getPath($name, $parameters = array())
{
return $this->generator->generate($name, $parameters, false);
}
public function getUrl($name, $parameters = array())
{
return $this->generator->generate($name, $parameters, true);
}
所以你可以在那里獲得getUrl,或者你可以插入自己的UrlGenerator。 不確定在特定情況下哪個更容易。 可能會制作自己的UrlGenerator。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.