如何在 Typo3 v8 上使用子域设置自己的 CDN?

How to set up own CDN with subdomain on Typo3 v8?

由于 Typo3 v8 不支持 Content Replacer (ja_replacer) 是否有任何其他方法可以替换 Typo3 v8 中的 url 字符串并设置自己的 CDN 服务?

为了更清楚,在 Typo3 v4.5-6.1 中它看起来像这样:

config.tx_ja_replacer {
  search {
    1="typo3temp/
    2="fileadmin/
    3="typo3conf/
  }
  replace {
    1="https://cdn.domain.de/typo3temp/
    2="https://cdn.domain.de/fileadmin/
    3="https://cdn.domain.de/typo3conf/
  }
}

但此扩展程序不再受支持。

提前致谢!

---- 编辑 1 ----

如果有人仍然对 'ja_replacer' 感兴趣,这是一个 Typo3 v7 & v8 分支: ja_replace for Typo3 v7-8

有了这个我设法让它工作但遇到了 CORS 问题,即使字体设置为通配符来源

---- 编辑 2 ----

对此进行了测试(Mario Naether),但这也没有用(即使使用 page.stdWrap.replacement)

page.stdWrap.replacement {
  10.search = #"fileadmin\/#
  10.replace = "https://cdn.domain.de/fileadmin/
  10.useRegExp = 1
  11.search = #"typo3temp\/#
  11.replace = "https://cdn.domain.de/typo3temp/
  11.useRegExp = 1
  12.search = #"typo3conf\/#
  12.replace = "https://cdn.domain.de/typo3conf/
  12.useRegExp = 1
}

---- 编辑 3 ----

终于找到了让我满意的解决方案。 (如果我已登录) 我把它贴在这里作为答案。

这确实有效..但如果我没有登录则无效... 所以现在我必须管理它才能工作,即使我在没有登录的情况下加载网站也是如此。

TYPO3 扩展 replacecontent 来自 Michiel Roos,MaxServ 具有几乎相同的功能。 https://extensions.typo3.org/extension/replacecontent/ 当前版本仍然只与 TYPO3 7.6 兼容,但可以很容易地使其与 TYPO3 8 兼容,同时分叉 github https://github.com/MaxServ/t3ext-replacecontent 并改进现有代码。

您可以使用 TYPO3 中的 stdWrap 函数。这适用于所有 TYPO3 版本 >= 6.2.

page.stdWrap.replacement {
    10.search = #"fileadmin\/_processed_\/#
    10.replace = "https://cdn.mydoamin.de/fileadmin/_processed_/
    10.useRegExp = 1
}

经过几天的研究,我发现了一个很好的解决方案,它适用于 Typo3 v7.6.0 - v8.99.99

安装ja-replacer(通过 PHORAX)

并将此代码添加到您的 TypoScript

#CDN über Sub-Domain 'CDN.DOMAIN.de'
config.tx_ja_replacer{
  search {
    10="/typo3temp/
    11="typo3temp/
    12="/fileadmin/
    13="fileadmin/
    14="/typo3conf/
    15="typo3conf/
  }

  replace {
    10="https://CDN.DOMAIN.de/typo3temp/
    11="https://CDN.DOMAIN.de/typo3temp/
    12="https://CDN.DOMAIN.de/fileadmin/
    13="https://CDN.DOMAIN.de/fileadmin/
    14="https://CDN.DOMAIN.de/typo3conf/
    15="https://CDN.DOMAIN.de/typo3conf/
  }
}

#Domain-replace Setup für CDN
[globalString = ENV:HTTP_HOST = WWW.DOMAIN.de]
  page.config.baseURL = https://WWW.DOMAIN.de/
  config.tx_ja_replacer.replace < tx_ja_replacer
[global]

1.) 现在将每个“cdn.domain.de”替换为您自己的 CDN 子域或 CDN 域

2.) 将每个“www.domain.de”替换为您的域。

2b) 如有必要,如果您不使用 https

,则将“page.config.baseURL”的值更改为 http 而不是 https

---- 编辑 1 ----

不知何故,只要我登录就可以正常工作。 当我在没有登录的情况下加载我的 Typo3 网站时,它不会替换任何东西。