symfony4 - 如果在 Symfony 4 中被后台进程调用,Twig 在服务中渲染找不到 CSS
问题描述
我有一个由 MessageHandler 和 Controller Action 调用的服务方法:
class ReceiptService
{
public function myMethod()
{
// ...
$html = $this->twig->render('folder/file.html.twig', []);
// ...
}
}
在我的树枝模板中,我调用了一些 CSS 文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>My title</title>
<link rel="stylesheet" href="css/PDF/file.css">
</head>
<body>
<!-- ... -->
</body>
</html>
当我使用控制器动作时,树枝模板能够找到我的 CSS 文件。但是当它是调用它的 MessageHandler 时,它不会找到它,除非我把它放在public/
每个 href 之前,eG
<link rel="stylesheet" href="public/css/PDF/file.css">`
我尝试使用{{ asset() }}
但没有成功。
你知道为什么以及如何解决这个问题吗?
解决方案
尝试使用absolute_url
<link rel="stylesheet" href="{{ absolute_url(asset('css/PDF/file.css')) }}">
推荐阅读
- jackson - 记录自定义数据映射
- excel - 计算逗号分隔列表中的奇数和偶数
- neural-network - Pytorch minibatching 使模型无法训练
- ruby-on-rails - 如何在同一台服务器上部署单独的 Rails API 后端和 React 前端
- javascript - 如何使用 this 关键字向构造函数添加新属性?
- gcc - 如何编译 VBScript 以包含 DLL 处理程序?
- php - 如何在 Laravel 中使用 select 获取相关字段值?
- python-3.x - 如何更正输入提示中大括号的显示?
- mysql - MySql如何根据查询类型创建一行并添加子表?
- dataset - SSRS textrun 在外部聚合中使用第一个聚合(不同的数据集)