我们正尝试将LMS系统中的视频嵌入到我们的网站中,该视频对于经过身份验证的用户来说效果很好,因为未缓存api令牌(然后将其传递到段落小枝文件),但对于匿名用户,它在尝试5-6次,因为令牌不能多次重用。从我们的代码库开始,它每次生成一次,但是当该令牌变量传递到树枝文件时,它不会替换该令牌,而是使用段落的缓存版本。我们如何不能在drupal中缓存特定的段落?
我们已经在$variables['#cache']['max-age'] = 0;
函数中添加了hook_preprocess_paragraph
,但这并不是很清楚。
* Implements hook_preprocess_paragraph().
*/
function custom_module_preprocess_paragraph(&$variables) {
if (!empty($variables['elements']['#paragraph'])) {
/** @var \Drupal\paragraphs\Entity\Paragraph $paragraph */
$paragraph = $variables['elements']['#paragraph'];
$id = $paragraph->get('type')->getValue();
if ($id[0]['target_id'] === 'block_video_id') {
$vid = $paragraph->get('field_video')->value;
// This token is passed to the twig file inside the iframe.
$variables['LoadUrl'] = get_token($vid);
// I don't this is clearing the cache at all.
$variables['#cache']['max-age'] = 0;
}
}
}
树枝文件
<div class="section-wrapper">
<div class="content-wrapper">
<div class="training-video-description">
{% if(LoadUrl is not empty ) %}
<iframe src="{{ LoadUrl }}" align="center" frameborder="0"></iframe>
{% endif %}
</div>
</div>
</div>
</section>
如何