簡體   English   中英

Symfony2 / Twig:生成用於CDN的備用絕對URL路徑?

[英]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() }}功能,以便我可以像pathurl一樣使用它。

您可以通過以下方式在您鏈接的問題的幫助下完成此操作

{{ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM