如何在 SilverStripe 的主题文件夹中创建 public 文件夹
How to create a public folder inside themes folder in SilverStripe
我正在处理遗留的 SilverStripe 项目。我正在尝试在主题文件夹中创建一个名为 "files" 的 public 文件夹。该文件夹中的所有文件都可以通过浏览器访问。
我创建了一个文件夹并在其中创建了一个文件。
当我从 URL 访问文件夹中的文件时,出现 404 错误。但是当我从 css、fonts、img 等其他文件夹访问文件时,它按预期工作。它不适用于我刚刚创建的 "files" 文件夹。我需要配置什么吗?
您需要 "expose" 项目 composer.json
中的文件夹,因此 运行ning composer vendor-expose
会将文件符号链接或复制到您的 public 资源文件夹。
您的 composer.json 将如下所示:
{
"name": "app/myproject",
"type": "silverstripe-project",
"require": {
"silverstripe/recipe-cms": "4.4.x-dev"
},
"extra": {
"resources-dir": "_resources",
"expose": [
"themes/mytheme/dist",
"themes/mytheme/files"
]
}
}
最好将所有生成的公开文件(js、css)收集到名为 "dist" 的文件夹中,这样您就不必单独公开它们。
您可以手动调用 composer vendor-expose
(例如,在每次文件更改后 windows 上,因为符号链接在 windows 下不起作用)并且它会在您 运行 时自动调用composer install
或 composer update
.
我正在处理遗留的 SilverStripe 项目。我正在尝试在主题文件夹中创建一个名为 "files" 的 public 文件夹。该文件夹中的所有文件都可以通过浏览器访问。
我创建了一个文件夹并在其中创建了一个文件。
当我从 URL 访问文件夹中的文件时,出现 404 错误。但是当我从 css、fonts、img 等其他文件夹访问文件时,它按预期工作。它不适用于我刚刚创建的 "files" 文件夹。我需要配置什么吗?
您需要 "expose" 项目 composer.json
中的文件夹,因此 运行ning composer vendor-expose
会将文件符号链接或复制到您的 public 资源文件夹。
您的 composer.json 将如下所示:
{
"name": "app/myproject",
"type": "silverstripe-project",
"require": {
"silverstripe/recipe-cms": "4.4.x-dev"
},
"extra": {
"resources-dir": "_resources",
"expose": [
"themes/mytheme/dist",
"themes/mytheme/files"
]
}
}
最好将所有生成的公开文件(js、css)收集到名为 "dist" 的文件夹中,这样您就不必单独公开它们。
您可以手动调用 composer vendor-expose
(例如,在每次文件更改后 windows 上,因为符号链接在 windows 下不起作用)并且它会在您 运行 时自动调用composer install
或 composer update
.