标签: drupal-8

Drupal 8 - 第一页加载时不显示图像样式

我正在使用实体浏览器上传图像和响应式图像样式来显示它们.

我发现创建节点并添加图像后,新用户第一次访问该页面时,图像将不会显示.然后刷新页面将显示图像.

  • 我已尝试使用和不使用itok变量,结果相同.

  • 我尝试使用响应式图像样式和普通图像样式,并使用相同的结果.

  • 首次在后端上传图像时,缩略图不会显示.

  • 图像正确上传,并在文件夹中.

在第一页加载时,正在创建图像样式,我可以在样式文件夹中看到它,它在Windows中打开很好,但如果我查看图像样式URL(.../styles/stylename/public/folder/image .jpg)有一条消息说'图像无法显示,因为它包含错误'.如果我对此做了很多努力,图像会显示出来,然后返回并刷新页面,图像就在那里.

它似乎是浏览器第一次尝试从缓存加载图像并且它不存在,因此URL被破坏.

如果有其他人遇到过这个问题,我很乐意听到.尝试过我能想到的一切.

php image drupal-8

6
推荐指数
1
解决办法
928
查看次数

Drupal 8 模块 - 如何使用 AJAX?

我目前正在尝试在我的 Drupal 8 模块中使用 AJAX(使用 jQuery),以便在用户在文本字段中键入内容时重新加载页面。我设法恢复了一个完整的 HTML 页面,但我希望 AJAX 函数只获取页面的内容(没有整个布局)。

我怎样才能做到这一点?为了在请求使用 AJAX 时呈现不同的视图,我应该在我的控制器函数中更改什么?

我在 Google 和 Drupal 8 文档上进行了搜索,但没有找到我的问题的任何答案。

在此先感谢您的帮助!

ajax jquery drupal drupal-8

5
推荐指数
1
解决办法
6945
查看次数

git 子模块和获取

无法理解子模块

它们似乎不必要地复杂。通常我完全避免它们,但一个项目迫使我陷入这种情况

所以...

我在我们的开发服务器上有一个带有子模块的 git repo

/myproject
          /.git
          /files ...
          /other
               /submodule
                         /.git
Run Code Online (Sandbox Code Playgroud)

现在因为我们运行一个开发/生产环境,我们可以做的事情非常有限

我如何能

  • 将 repo 克隆到 prod,以便 prod 服务器完全填充父 git 并且所有子模块都已检出?
  • 那我怎么...
    • 更新其他/子模块中的文件
    • 提交它
    • 将它提取到克隆的 repo
    • 然后将其合并到克隆的 repo 中

我们传统上使用获取然后合并策略而不是单个拉取。由于团队规模很小,我们也不使用裸仓库。

我尝试了多种不同的方法来实现上述目标,但似乎都不对。似乎涉及很多步骤,所以我一定是做错了什么。

此外,我不希望从子模块远程存储库中获取到 prod 服务器的获取。

只是让您知道我正在从事的项目是一个 drupal 8 项目,在生产中进行开发是完全不合适的,我们甚至不安装 composer 或 drush。

git git-submodules drupal-8

5
推荐指数
1
解决办法
4635
查看次数

在 Drupal 8 中,如何在保存节点之前操作值?

我有一个编辑节点表单。当用户输入新值并单击提交来编辑节点时,我首先想取回旧节点,操作该值,然后保存/更新节点。

以下是我的解决方案,但它不起作用。

function custom_module_form_node_form_alter(&$form, FormStateInterface $form_state) {
    $editing_entity = $form_state->getFormObject()->getEntity();

    if (!$editing_entity->isNew()) {
        $form['actions']['submit']['#submit'][] = 'custom_module_node_form_submit';
    }
}

function custom_module_node_form_submit($form, FormStateInterface $form_state) {
   $editing_entity = $form_state->getFormObject()->getEntity();

   $entity = Drupal::entityTypeManager()->getStorage('node')->load($editing_entity->id());
}
Run Code Online (Sandbox Code Playgroud)

在 form_submit 钩子中,我尝试取回旧节点,但已经太晚了,节点已经更新/保存。在 Drupal 8 中更新/保存节点之前,如何取回旧节点并操作该值?

php drupal drupal-8

5
推荐指数
2
解决办法
2万
查看次数

在 Drupal 8 中删除内容文件

我在删除 Drupal 8 上的文件时遇到问题。如何删除任何类型的文件,例如在我的情况下是图片文件(jpg、png 等...)。在 Drupal 7 中,您可以在右侧选择删除文件,但 Drupal 8 没有该选项......仅适用于已发布的页面。如果您不再需要文件,是否有机会出于任何原因删除文件,无需任何复杂的任务?

PS:我是一个初学者 Drupal 用户!谢谢

drupal-7 drupal-8

5
推荐指数
1
解决办法
3399
查看次数

如何修复 behat 脚本中的 behat 'DMore\ChromeDriver\StreamReadException'

我正在执行我的 behat 脚本并收到以下异常:

/vendor/dmore/chrome-mink-driver/src/DevToolsConnection.php 中的 DMore\ChromeDriver\StreamReadException

我在本地和 Acquia 管道中遇到以下异常。奇怪的是,此异常并非每次都出现,而是每次出现在不同的步骤定义中。

@smoke
Feature: Test SEARCH box
  @javascript @api @errors
  Scenario: Test For the SEARCH box                                                                                     
    Given I am on "/"
                                                                                                   # Drupal\DrupalExtension\Context\MinkContext::visit()
DMore\ChromeDriver\StreamReadException in /<project_folder>/vendor/dmore/chrome-mink-driver/src/DevToolsConnection.php
Run Code Online (Sandbox Code Playgroud)

php drupal-8 behat

5
推荐指数
1
解决办法
985
查看次数

使用参数翻译 Drupal 8 自定义路由路径

我有以下路线

my_module.order_details:
    path: '/account/orders/{orderId}'
Run Code Online (Sandbox Code Playgroud)

在 Drupal 8 中有什么方法可以翻译这条路由路径吗?

对于所有其他路由,我一直在使用我需要翻译的语言添加一个 url 别名。但是,因为它的参数 {orderId} 似乎不起作用,我找不到方法将通配符添加到 url 别名中。(我认为这可以解决我的问题)

我知道我可能会为每个 orderId 创建一个翻译的 url 别名,但如果可能的话,我想避免这种情况。

谢谢

routing translate drupal-8

5
推荐指数
1
解决办法
1181
查看次数

在 Chrome 中,img 元素的 currentSrc 有时为空。我怎样才能防止这种情况发生?

更新:

我刚刚找到了一些更多信息。看来在 Chrome 中,图像的 currentSrc 通常是空的,而在 Firefox 中,URL 总是正确的。JS 是否在 currentSrc 可用之前尝试访问它?有办法防止这种情况吗?


我正在创建一个 Drupal 8 网站,为了将响应式图像模块与背景图像一起使用,我想出了以下解决方法。下面的 JS 函数 setParallaxImage() 从图片元素中的 img 中获取 currentSrc,并将其设置为最外层 div 的背景图像。img 本身不显示(CSS 中的 display: none),并给出一个虚拟图像,因为我只需要它来获取 currentSrc。该函数通过 onload 和 onresize 调用。

该代码似乎在 Firefox 中运行良好。当调整浏览器大小超过断点时,图像会瞬间变成灰色,然后从正确的源加载图像。然而,对于 Chrome,当快速调整大小超过断点时,图像可能会变成灰色并且根本不显示,即,background-image: url()。通常,如果我再调整窗口大小几次,图像最终就会出现。有谁知道为什么会发生这种情况?感谢您的阅读。

JS

function setParallaxImage() {


    const parallaxContainer = document.getElementsByClassName('paragraph--type--parallax-banner-with-text');

    for(var i = 0; i < parallaxContainer.length; i++) {
      console.log('in setparallax');
      var x = parallaxContainer[i];
      var parallax = x.getElementsByClassName('field--name-field-parallax-image-top-')[0];
      var picture = parallax.getElementsByTagName("picture")[0];
      var sourceURL = picture.querySelector('img').currentSrc;
      x.setAttribute('style', 'background-image: url(' + sourceURL +')'); …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome drupal-8 picture-element responsive-images

5
推荐指数
1
解决办法
1045
查看次数

发生客户端错误 - Drupal 8 REST API Post 方法

当我调用 Drupal 8 自定义 Rest API post 方法时,出现以下错误。请帮我解决这个问题,我在过去 4 天里一直在挣扎。

在此输入图像描述

rest resources drupal drupal-8

5
推荐指数
2
解决办法
2997
查看次数

我在 Drupal 8 中遇到标志模块的问题(csrf_token' URL 查询参数无效)

我生成了标志链接

  $flag_link = [
  '#lazy_builder' => ['flag.link_builder:build', [
    $product->getEntityTypeId(),
    $product->id(),
    'product_like',
  ]],
   '#create_placeholder' => TRUE,
];
Run Code Online (Sandbox Code Playgroud)

标志链接生成成功。但是当我点击标志链接时,我收到了错误消息作为响应

{message: "'csrf_token' URL query argument is invalid."}
message: "'csrf_token' URL query argument is invalid."
Run Code Online (Sandbox Code Playgroud)

php drupal module drupal-8 csrf-token

5
推荐指数
1
解决办法
347
查看次数