Bigcommerce 的 Handlebars 中的开发环境条件
Conditional for development environment in Bigcommerce's Handlebars
使用 Stencil 中的 Cornerstone 主题,我希望能够根据我是在本地 NPM 环境还是在生产站点上做不同的事情。
查看当前的 URL 是不够的,因为页面必须已经加载。当生成标记时,我想在模板中使用带把手的条件语句。类似于:
{{#if developEnvironment '===' 'true'}}
<p>I'm local</p>
{{else}}
<p>I'm remote</p>
{{/if}}
我在 theme_settings
变量中看不到任何有用的东西。
有什么想法吗?
您可以添加自己的自定义 theme_settings
值。
首先,导航到 ./config.json
文件。在此文件中查找 variations
数组。
它应该看起来像这样:
"variations": [
{
"name": "Light",
"id": "light",
"meta": {...},
"images": {...},
"settings": {
"developEnvironment": true,
...
在设置对象下,您可以添加自己的自定义 theme_settings
值,就像我在上面所做的那样:"developEnvironment": true,
。现在在你的主题文件中你可以做这样的事情:
{{#if theme_settings.developEnvironment}}
<!-- Do something -->
{{/if}}
您可以尝试使用这个条件语句:
{{#if settings.maintenance.secure_path '==' 'http://localhost:undefined'}}
You are running on development.
{{else}}
You are running on production.
{{/if}}
BigCommerce 提供实际的 key/value 对来确定是否在开发中。
我使用的是 stencil CLI v2.1.0,所以旧版本可能不是这样。
{{#if in_development}}
In Development
{{else}}
In Production
{{/if}}
使用 Stencil 中的 Cornerstone 主题,我希望能够根据我是在本地 NPM 环境还是在生产站点上做不同的事情。
查看当前的 URL 是不够的,因为页面必须已经加载。当生成标记时,我想在模板中使用带把手的条件语句。类似于:
{{#if developEnvironment '===' 'true'}}
<p>I'm local</p>
{{else}}
<p>I'm remote</p>
{{/if}}
我在 theme_settings
变量中看不到任何有用的东西。
有什么想法吗?
您可以添加自己的自定义 theme_settings
值。
首先,导航到 ./config.json
文件。在此文件中查找 variations
数组。
它应该看起来像这样:
"variations": [
{
"name": "Light",
"id": "light",
"meta": {...},
"images": {...},
"settings": {
"developEnvironment": true,
...
在设置对象下,您可以添加自己的自定义 theme_settings
值,就像我在上面所做的那样:"developEnvironment": true,
。现在在你的主题文件中你可以做这样的事情:
{{#if theme_settings.developEnvironment}}
<!-- Do something -->
{{/if}}
您可以尝试使用这个条件语句:
{{#if settings.maintenance.secure_path '==' 'http://localhost:undefined'}}
You are running on development.
{{else}}
You are running on production.
{{/if}}
BigCommerce 提供实际的 key/value 对来确定是否在开发中。
我使用的是 stencil CLI v2.1.0,所以旧版本可能不是这样。
{{#if in_development}}
In Development
{{else}}
In Production
{{/if}}