部署静态视图文件
使用static view files deployment命令,您可以在设置Commerce软件时,将静态文件写入Commerce文件系统 生产模式.
术语 静态视图文件 是指以下内容:
- “静态”表示可以为站点缓存它(即,文件不是动态生成的)。 示例包括从LESS生成的图像和CSS。
- “视图”是指表示层(来自MVC)。
静态视图文件位于 <magento_root>/pub/static
目录,并且某些文件缓存在 <magento_root>/var/view_preprocessed
目录。
静态视图文件部署受以下应用程序模式影响:
您必须使用本主题中介绍的命令手动将静态视图文件写入Commerce文件系统;之后,您可以限制权限以限制漏洞并防止意外或恶意覆盖文件。
部署静态视图文件:
-
以或身份登录Commerce服务器 切换到文件系统所有者.
-
删除内容
<magento_root>/pub/static
,但以下各项除外.htaccess
文件。 请勿删除此文件。 -
运行静态视图文件部署工具
<magento_root>/bin/magento setup:static-content:deploy
.note info INFO 如果在Admin中启用静态视图文件合并,则 pub/static
目录系统必须是可写的。命令选项:
code language-bash bin/magento setup:static-content:deploy [<languages>] [-t|--theme[="<theme>"]] [--exclude-theme[="<theme>"]] [-l|--language[="<language>"]] [--exclude-language[="<language>"]] [-a|--area[="<area>"]] [--exclude-area[="<area>"]] [-j|--jobs[="<number>"]] [--no-javascript] [--no-css] [--no-less] [--no-images] [--no-fonts] [--no-html] [--no-misc] [--no-html-minify] [--no-parent] [-f|--force]
下表说明了此命令的参数和值。
<languages>
--language (-l)
例如:
--language en_US --language es_ES
--exclude-language
--theme <theme>
例如:
--theme Magento/blank --theme Magento/luma
--exclude-theme <theme>
例如,
--exclude-theme Magento/blank
--area (-a)
adminhtml
和 frontend
. 默认值为 所有.例如:
--area adminhtml
--exclude-area
--symlink-locale
--content-version=CONTENT-VERSION
--no-javascript
--no-css
--no-less
--no-images
--no-fonts
--no-html
--no-misc
--no-html-minify
-s <quick|standard|compact>
定义部署策略。 仅当有多个本地时,才使用这些选项。
--no-parent
--force (-f)
<languages>
和 --language
, <languages>
优先。示例
以下是一些示例命令。
排除主题和HTML缩小
以下命令为美式英语部署静态内容(en_US
)语言,不包括随Commerce提供的Luma主题,并且不会缩小HTML文件。
bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify
示例输出:
Requested languages: en_US
Requested areas: frontend, adminhtml
Requested themes: Magento/blank, Magento/backend
=== frontend -> Magento/blank -> en_US ===
=== adminhtml -> Magento/backend -> en_US ===
...........................................................
... more ...
Successful: 2055 files; errors: 0
---
New version of deployed files: 1466710645
............
Successful: 1993 files; errors: 0
---
以下命令使用标准部署策略仅部署JavaScript,其中4个作业:
bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4
以下命令仅部署CSS和LESS,包含3个作业和一个快速部署策略:
bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3
为一个主题和一个区域生成静态视图文件
以下命令为所有语言生成静态视图文件,仅前端区域,仅Commerce Luma主题,不生成字体:
bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma
示例输出:
Requested languages: en_US
Requested areas: frontend
Requested themes: Magento/luma
=== frontend -> Magento/luma -> en_US ===
...........................................................
... more ...
........................................................................
Successful: 2092 files; errors: 0
---
New version of deployed files: 1466711110
在不安装Commerce的情况下部署静态视图文件
您可能希望在单独的非生产环境中运行部署过程,以避免在敏感的生产计算机上执行任何构建过程。
为此,请执行以下步骤:
- 运行
bin/magento app:config:dump
以从生产系统导出配置。 - 将导出的文件复制到非生产代码库。
- 部署静态视图文件:
bin/magento setup:static-content:deploy
静态视图文件部署工具疑难解答
首先安装Commerce软件;否则,将无法运行静态视图文件部署工具。
症状:运行静态视图文件部署工具时,会显示以下错误:
ERROR: You need to install the Commerce application before running this utility.
解决方案:
请使用以下步骤:
开发人员自定义静态内容部署工具的提示
创建静态内容部署工具的自定义实施时,请仅使用原子文件写入来写入应在客户端上可用的文件。 如果使用非原子文件写入,则这些文件可能会加载到包含部分内容的客户端上。
使其成为原子文件的选项之一是,写入存储在临时目录中的文件,并在写入结束后将其复制或移动到目标目录(从目标目录将其加载到客户端)。 有关写入文件的详细信息,请参见 php fwrite.