mentiondev / craft3-base
一个 Craft 3 入门项目
Requires
- craftcms/cms: ~3.0.0
- nystudio107/craft-minify: ^1.2
- nystudio107/craft-scripts: ^1.2
- nystudio107/craft-typogrify: ^1.1
- nystudio107/craft3-multi-environment: ^1.0
- vlucas/phpdotenv: ^2.4.0
README
这是一个基于出色的 nystudio107 Craft 3 CMS 框架项目 的分支项目,包含我自己的定制化
假设
由于这是 mention 为项目使用的样板文件,因此它本质上是有偏见的,并且包含一些假设
- 本地设置通过命令行完成
- 使用 Gulp 作为前端工作流程自动化工具
- 已设置 NPM 或 YARN
- 使用 Bootstrap 3 作为 CSS 框架
- 使用 Nginx 作为 Web 服务器
- 使用 MAMP Pro 和 Sequel Pro 在本地数据库中进行设置,因此将需要编辑其他设置
- nystudio107/craft-scripts 用于数据库/资产同步和备份
- nystudio107/craft3-multi-environment 用于 Craft 3 多环境设置
显然,您可以选择删除不希望使用/需要的任何组件。
使用 mentiondev/craft3-base 进行初始设置
此项目包与 Pixel & Tonic 的 craftcms/craft 包完全一样;您通过首先创建和安装项目来创建新项目
composer create-project mentiondev/craft3-base PATH
确保 PATH 是您项目的路径,包括您想要的项目的名称,例如
composer create-project mentiondev/craft3-base PATH
然后转到 MAMP Pro,并 创建一个新的主机,将其指向您创建的项目中的 /web 文件夹。
此外,创建一个新的数据库 并注意/复制名称,因为在 craft 设置中将需要它。然后保存以重新启动本地的 apache 和 mysql。
然后回到终端,使用 cd 命令转到您的新项目目录,并运行 Craft 的 setup 控制台命令以创建您的 .env 环境和可选安装
cd PATH
./craft setup
接下来,运行 nys-setup 命令,根据您新创建的 .env 设置配置 Craft-Scripts 和 Craft 3 Multi-Environment
./nys-setup
如果您曾经删除了 vendor 文件夹或类似的内容,只需重新运行即可
./nys-setup
...它将重新创建到您的 .env.sh 的符号链接
接下来,编辑 .env.gulp.json 文件,将其指向您选择的本地 URL。这是浏览器同步所需的内容。
最后,在项目根目录下的终端中输入
gulp
浏览器同步将启动浏览器,并准备好开始使用。
资产
登录到 Craft CMS,转到 设置/资产 并创建一个具有您选择的文件夹名称的 新卷
然后将 基本 URL 设置为
@baseUrl/assets
然后将 文件系统路径 设置为
@basePath/assets
然后将这些内容复制到 config/volumes.php 文件中
为实时站点创建缓存破坏
这是使用在 Simple Static Asset Versioning in Craft CMS 中描述的方法创建的
我包含了一个名为 {{ staticAssetsVersion }} 的 twig 标签,它引用 config/general.twig 中的 craft.app.config.general.custom.staticAssetsVersion
要使用它,请添加
{% if env != 'local' %}.{{ staticAssetsVersion }}{% endif %}
在文件名之前。例如
<link href="{{ siteUrl }}css/main{% if env != 'local' %}.{{staticAssetsVersion}}{% endif %}.css" rel="stylesheet">
这将使实时网站输出<link href="http://<siteurl>/css/main.1.css" rel="stylesheet">,以便对该版本号进行缓存,在预览网站上输出<link href="https://<siteurl>/css/main.1546193063.css" rel="stylesheet">,因为预览网站使用time()标签作为静态资源版本号,这样在定期进行更改时,开发服务器不会缓存它,因为此更改每秒都会发生变化。
要清除实时网站的缓存,请转到项目根目录下的终端并输入
gulp build
这将增加staticAssetsVersion号1
为了使{{staticAssetsVersion}}正常工作,需要在服务器的nginx配置文件顶部添加以下内容
location ~* (.+)\.(?:\d+)\.(js|css|png|jpg|jpeg|gif|webp)$ {
try_files $uri $1.$2;
}
然后重启服务器。
这将使浏览器在静态资产文件扩展名之前看不到任何数字,如果数字已更改,将强制浏览器下载新版本的文件,从而清除缓存。
再次,有关完整说明,请参阅Craft CMS中的简单静态资源版本管理
通过craft-scripts进行数据库/资产同步
有关如何使用所有nystudio107/craft-scripts的完整文档,请访问:nystudio107/craft-scripts
craft-scripts中包含几个脚本,每个脚本执行不同的功能。它们都使用共享的.env.sh来工作。此.env.sh应在您希望运行craft-scripts的每个环境中创建,并且应通过.gitignore排除。
设置
- 在您最喜欢的编辑器中打开
.env.sh文件,并将REPLACE_ME替换为适当的设置。
pull_db.sh
要从远程服务器获取数据库转储,请输入
./pull_db.sh
pull_db.sh脚本从远程服务器获取数据库转储,并将其导入到本地数据库中。在转储之前,它会备份本地数据库。
craft-scripts执行的数据库转储将排除我们不希望在备份/恢复中包含的临时/缓存表,例如templatecaches表。
有关详细说明,请参阅Craft CMS中不同环境之间的数据库和资产同步
注意:即使本地和远程在同一服务器上,也可以使用pull_db.sh脚本。
pull_assets.sh
要从远程服务器获取资产目录,请输入
./pull_assets.sh
pull_assets.sh脚本从远程服务器获取任意数量的资产目录,因为我们把客户上传的资产排除在git仓库之外。它将拉取的目录指定在LOCAL_ASSETS_DIRS
它还将默认拉取来自craft/storage的Craft userphotos和rebrand目录。它将拉取的目录指定在LOCAL_CRAFT_FILE_DIRS
有关详细说明,请参阅Craft CMS中不同环境之间的数据库和资产同步
注意:即使本地和远程在同一服务器上,也可以使用pull_assets.sh脚本。
pull_backups.sh
要从远程服务器获取由craft-scripts创建的备份,请输入
./pull_backups.sh
pull_backups.sh脚本从远程服务器获取由craft-scripts创建的备份,并将其同步到LOCAL_BACKUPS_PATH
对于数据库备份,在REMOTE_BACKUPS_PATH目录中的子目录REMOTE_DB_NAME/db用于数据库备份。
对于资产备份,在REMOTE_BACKUPS_PATH目录中的子目录REMOTE_DB_NAME/assets用于资产备份。
由于使用了 rsync 进行这些备份,您可以在任何目录中放置一个 .rsync-filter 文件来定义要忽略的文件/文件夹。 更多信息
有关详细说明,请参阅 通过网站备份减轻灾难。
有关如何使用它们以及其他选项的更多信息,请访问 nystudio107/craft-scripts。