【问题标题】:Yesod site links to localhost CSS filesYesod 站点链接到 localhost CSS 文件
【发布时间】:2013-09-06 21:02:52
【问题描述】:

我大致按照these 的说明将 Yesod 应用程序部署到 Heroku。我可以完美部署,但是当我访问the site 时,它没有样式。这似乎是因为它正在寻找一些奇怪的样式表:

<link rel="stylesheet" href="http://localhost:3000/static/combined/DtHk9AMk.css">
<link rel="stylesheet" href="http://localhost:3000/static/tmp/UEG9zQsl.css">

Yesod 为什么要生成这些 URL? Procfile specifies 在生产模式下运行 Yesod 可执行文件...

【问题讨论】:

  • approot 设置为什么?这将在您的 Yesod 实例声明中设置或作为设置从 config/settings.yml 中提取,具体取决于您启动项目的方式。后者是使用脚手架时的默认设置。
  • @AndrewMyers 啊哈哈。好吧,问题来了。谢谢!对不起,我很笨:P。我现在正在寻找一种从 config.yml 指定 ApprootRelative 的方法。
  • 没问题,我知道要问这个问题,因为我在我的第一个 Yesod 项目中做了同样的事情 :)
  • yesod书上说默认是ApprootRelative,code里好像是这样。如果您从 .yml 文件远程设置 approot 设置,它是否默认为相对?
  • @AndrewMyers 是的,做到了。非常感谢:)。

标签: haskell heroku yesod


【解决方案1】:

Yesod 期望 Yesod 类型类中的 approot 与托管它的根 URL 匹配。 Yesod 书here 中解释了如何使用它。如果您使用yesod init 生成的脚手架,approot 将来自config/settings.yml 文件。

由于默认值为AppRootRelative,您可以从settings.yml 文件中删除approot 设置并获得您想要的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多