Orocommerce v5.1能否以Blank为父主题创建新主题?报错及方案咨询
OroCommerce v5.1 主题创建问题解答
一、能否以Blank主题作为父主题创建新主题?
可以,但你碰到的错误是因为主题名称用错了。在OroCommerce v5.1里,官方Blank主题的正确内部标识是oroblank,不是blank。当你指定父主题为blank时,系统找不到对应的主题定义,就会抛出“Unable to retrieve definition for theme blank”的错误。
解决方法很简单,在自定义主题的theme.json里把父主题指定为oroblank就行,示例代码如下:
{ "name": "我的自定义主题", "parent": "oroblank", "label": "我的自定义主题", "logo": "img/logo.png", "screenshot": "img/screenshot.png" }
二、从零开始创建自定义主题的最优方式
要是不想基于现有主题(包括oroblank)从零搭建,按照以下步骤来最稳妥:
创建主题目录结构:在项目的
src/Resources/views或者public/themes下新建主题目录,比如my-custom-theme,目录结构参考:my-custom-theme/ ├─ theme.json # 主题核心配置文件 ├─ img/ # 存放logo、截图、主题图片 ├─ scss/ # 自定义样式文件 ├─ js/ # 自定义脚本文件 └─ templates/ # 覆盖或新增页面模板编写theme.json配置:配置文件里不用加
parent字段,明确这是从零开始的主题,示例:{ "name": "my-custom-theme", "label": "我的自定义主题", "logo": "img/logo.png", "screenshot": "img/screenshot.png", "styles": ["scss/styles.scss"], "scripts": ["js/main.js"] }编写样式与脚本:在
scss/styles.scss里写自定义样式,可按需引入Oro的基础变量;在js/main.js里添加交互逻辑,需要的话可以引入Oro核心JS模块。注册主题:执行命令注册你的自定义主题:
php bin/console oro:theme:register编译静态资源:运行以下命令生成生产可用的静态文件:
php bin/console oro:assets:install --symlink php bin/console oro:webpack:build启用主题:登录后台,进入「系统 > 配置 > 外观 > 主题」,选中你的自定义主题并保存配置即可。
内容的提问来源于stack exchange,提问作者zkv.prog
相关产品推荐
相关产品推荐

