【问题标题】:Silverstripe 4 - CSS and JS Requirements. How/what populates the /resources directory?Silverstripe 4 - CSS 和 JS 要求。如何/什么填充 /resources 目录?
【发布时间】:2017-12-11 01:03:34
【问题描述】:

我有一个 SS3.x 模块,我已经分叉了,通过 composer 从它的分叉中拉下来,并开始移植到 SS4。到目前为止一切顺利,除了需求方面。

我在另一个模块中使用现有代码中的需求格式,该格式有一个冒号分隔的格式,如下所示:

Requirements::javascript('company/mymodule:javascript/SortableUploadField.js');

此文件存在于 /vendor/company/mymodule/javascript/SortableUploadField.js 的模块中。但是在页面加载时,我在控制台中有一个 404,因为 SS 在 /resources/company/mymodule/css/SortableUploadField.css 中查找此文件。而这并不存在。

当我看到其他模块这样做时,我在我的 composer.json 文件中添加了以下内容:

"extra": {
    "installer-name": "sortableuploadfield",
    "expose": [
        "css",
        "javascript"
    ]
},

并运行了作曲家更新。但是这个模块没有出现 /resources 目录(其他模块在那里)。而且我在网上找不到任何关于这应该如何工作的信息。

编辑:作为旁注,我想知道documentation for Requirements 是否具有误导性?它完全忽略了模块的这个警告,并完全提到了资源目录。如果该文档只是为了传达在正常的 mysite 开发中使用 JS/CSS 的过程,那么它只是有点令人困惑,因为代码无处不在。当然,这不会是 /vendor 中某些内容的直接 url。

【问题讨论】:

    标签: silverstripe silverstripe-4


    【解决方案1】:

    在跟踪基本上使用 /resources 目录的代码后发现了这个。我的查询的简短回答只是在运行

    作曲家供应商公开

    这会调用执行此复制的 VendorExposeTask。我发现使用此任务的唯一其他地方是 VendorPlugin 安装方法。所以我假设除了上述命令之外,SS 实际代表您执行此操作的唯一方法是在初始安装模块时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2022-07-04
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      相关资源
      最近更新 更多