【问题标题】:How to set baseUrl (also for apostrophe-multisite)如何设置 baseUrl(也适用于撇号-多站点)
【发布时间】:2019-01-23 04:13:04
【问题描述】:

我正在使用多站点模块进行撇号项目,并且由于运行npm update,因此页面的_urls/baseUrl-not-set 开头。我只能在文档中找到这个:

baseUrl(全局选项,未针对此特定模块设置) 为方便起见, req.absoluteUrl 设置为当前请求的绝对 URL。如果顶层的 baseUrl 选项(不是针对此特定模块)设置为字符串,例如 http:://mysite.com,则任何站点范围的前缀和 req.url 都会附加到该字符串。否则,绝对 URL 将根据浏览器的请求构建。从命令行任务生成标记时,设置 baseUrl 全局选项对于合理的 URL 是必要的。

source

所以,我不确定是否会将 baseUrl 属性添加到 app.js(请记住这是一个多站点项目,因此它需要是动态的),或者 apostrophe-globa/index.js 作为根级别模块的属性,或addFields 下的属性(我都尝试过,但无济于事)。

所以基本上从npm updating 开始,我的所有 URL 的 URL 结构目前都被破坏了,我目前无法进行任何部署。

非常感谢这里的一些指导。

【问题讨论】:

    标签: apostrophe-cms


    【解决方案1】:

    抱歉这一天没有记录,说明现在是模块自述文件的一部分

    https://github.com/apostrophecms/apostrophe-multisite/blob/master/README.md#setting-baseurl-and-naming-environments

    【讨论】:

    • 这些文档非常有用,谢谢。这里的实现中仍然存在一个问题:一旦我为某个环境输入了 baseUrl,我必须重新启动应用程序才能在站点上进行更改。这让我觉得不太值得制作。
    • 公平,这个模块还没有发布到 npm。在baseUrl 由全局文档控制的多站点的情况下,我们可以尝试在撇号生命周期的任何时间点获取它。但无论如何,Apostrophe 的所有其他排列都会在应用程序启动时推断 baseUrl,所以我不知道我目前是否将其算作 UX 回归。
    • 对我来说问题是用户可以随意创建新网站。在设置 baseUrl 并且重新启动整个生产应用程序之前,他们的站点将不可用。这让我陷入了相当热水。如果您能指出我在相关模块中从何处着手解决此问题的正确方向,我很乐意试一试。
    • 实际上,对site 对象的任何修改都会导致该站点的apos 对象被丢弃并在下一个请求时重新实例化,因此它就像对该站点的第一个请求一样。该逻辑可能存在错误。如果您愿意,我们可以根据企业支持安排优先考虑这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2011-08-13
    • 1970-01-01
    • 2013-09-07
    • 2020-06-09
    相关资源
    最近更新 更多