2015-06-12 2 views
2

Приложение My 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 работает с файловой системой, а не через веб-сервер (к которому он все равно не мог получить доступ).

Поэтому вместо ссылки на файл 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> 
Смежные вопросы