【问题标题】:I have an error when doing the custom theme build进行自定义主题构建时出现错误
【发布时间】:2021-11-21 11:12:01
【问题描述】:

进行自定义主题构建时出现错误,运行以下命令时出现以下错误 bin/console gold:assets:build -- theme: https://i.postimg.cc/zBxLSXYP/Screenshot-20210928-175918.jpg

我添加的代码如下:

src/oro/Bundle/ThemeBundle/Resources/config/oro/Bundle.yml:

bundles:
    - { name: oroBundle/ThemeBundle/ThemeBundle, priority: 10 }

src/oro/Bundle/Bundle/ThemeBundle/Resources/views/layouts/theme/config/assets.yml.

styles:
  inputs:
      - bundles/ThemeBundle/theme/scss/settings/global-settings.scss
      - bundles/ThemeBundle/theme/scss/variables/top-bar-config.scss
      - bundles/ThemeBundle/theme/scss/styles.scss
  output: css/styles.css

src/oro/Bundle/ThemeBundle/Resources/views/layouts/theme/theme.yml

parent: default
logo: bundles/themeBundle/theme/images/logo.svg
icon: bundles/themeBundle/theme/favicons/favicon.ico
tag: My Company Marketplace
description: My Company Marketplace theme.
groups: [commerce]

src/oro/Bundle/ThemeBundle/oroThemeBundle.php:

<?php
namespace oroThemeBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class OroThemeBundle extends Bundle
{
}

在 sccs 文件中,我有以下内容:

src/oro/Bundle/ThemeBundle/Resources/public/theme/scss/components/top-bar.scss:

/* @theme: theme; */

.topbar {
  background: $top-bar-background;
}

src/oro/Bundle/ThemeBundle/Resources/public/theme/scss/settings/_colors.scss:

/* @theme: theme; */

$custom-color-palette: (
  "primary": (
    "primary": #0165ad,
    "base": #fd302b,
    "light": #ff7a76,
    "dark": #ce0500,
  ),
);
$color palette: map_merge($color_palette, $custom_color_palette);

src/gold/Bundle/ThemeBundle/Resources/public/theme/scss/variables/top-bar-config.scss:

/* @theme: theme; */

$top-bar-font-size: 14px;
$top-bar-background: get-color('primary', 'main');

【问题讨论】:

  • 请检查php bin/console debug:container --parameter=kernel.bundles --format=json 命令的输出。您的捆绑包 OroThemeBundle 必须在此处列出。
  • 我的捆绑包没有显示在列表中

标签: orocommerce


【解决方案1】:

问题在于目录结构和命名空间不匹配。

使用当前结构,您必须将 oroThemeBundle.php 类命名空间更改为oro/Bundle/ThemeBundle 并在 bundles.yml 文件中重用它

bundles:
    - { name: oro/Bundle/ThemeBundle/OroThemeBundle, priority: 10 }

另外,注意PHP类名必须与文件名匹配,所以oroThemeBundle.php文件要重命名为OroThemeBundle.php

这是 PSR-4 Autoloader 标准强制要求的:https://www.php-fig.org/psr/psr-4/

【讨论】:

    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多