2015-06-12 21 views
2

我的Symfony2應用程序在服務器機器上創建一個HTML文件,然後發送到wkhtmltopdf以從中生成一個CSS文件。這個HTML文件也可以通過瀏覽器訪問。如何從視圖中的資產輸出內容?

文件中的CSS/JS路徑使用Symfony的資產視圖助手像這樣給出:

<link href="<?php echo $view['assets']->getUrl('bundles/mybundle/css/style.css') ?>" type="text/css" rel="stylesheet" /> 

此觀看在瀏覽器中的文件時工作正常。但是,當我將文件傳遞到wkhtmltopdf時,路徑不再正確,因爲wkhtmltopdf在文件系統上運行,而不是通過webserver(它無法正確訪問)。

因此,不是鏈接CSS文件,而是尋找一種方法將其嵌入到HTML文件中,以便所有CSS都包含在文件中,而wkhtmltopdf不需要查找CSS文件。

如何告訴Symfony將資產文件的內容而不是其鏈接權限輸出到視圖中?

回答

0

我發現的解決方法是讀取控制器中的文件,然後將內容傳遞給視圖。

所以在控制器,你有

$styleFiles = [ 
     "bundles/mybundle/css/style.css", 
     "bundles/mybundle/css/print.css" 
    ]; 

    $style = ""; 

    foreach ($styleFiles as $file) { 
     $style .= file_get_contents($this->get("kernel")->getRootDir() . "/../web/" . $file); 
    } 

現在,你只需要在視圖中添加一個輸出這樣的:

<style type="text/css"> 
    <?= $style ?> 
</style> 
相關問題