You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yesod脚手架启动开发服务器时显示“The application isn’t built”问题求助

解决Yesod开发服务器显示“The application isn’t built”的问题

针对你在WSL2 Ubuntu 20.04 LTS环境下遇到的Yesod开发服务器启动后页面提示“The application isn’t built”的问题,可尝试以下排查和解决步骤:

1. 对齐yesod-bin与项目依赖的版本兼容性

全局安装的yesod-bin(1.6.2.2)可能和项目使用的Stack resolver版本不匹配,导致devel命令无法正确识别构建产物:

  • 查看项目根目录stack.yaml中的resolver字段(比如GHC 9.2.5对应lts-20.x系列)
  • 使用项目对应的resolver重新安装适配版本的yesod-bin:
    stack install yesod-bin --resolver <你的resolver版本>
    
    之后再执行stack exec -- yesod devel,确保使用的是适配项目环境的yesod-bin。

2. 检查devel命令的完整输出日志

运行stack exec -- yesod devel时,仔细查看终端输出,排查是否有被警告信息掩盖的编译失败或构建异常细节:

  • 是否存在依赖包版本冲突
  • 项目中是否有未被测试用例覆盖的编译错误(测试成功不代表所有组件都完成构建)
  • 是否因文件权限问题导致构建产物无法写入

3. 彻底清理并全量构建项目

执行更彻底的清理和构建操作,确保所有组件被正确编译:

# 清理所有构建产物和缓存
stack clean --full
# 全量构建项目(包含测试、基准组件但不运行)
stack build --test --bench --no-run-tests --no-run-benchmarks
# 重新启动开发服务器
stack exec -- yesod devel

4. 排查项目存储路径的权限问题

如果项目存储在Windows文件系统(如/mnt/c/目录下),WSL2与Windows文件系统的权限差异可能导致Stack无法正常读写构建产物:

  • 将项目迁移到WSL2本地文件系统(如/home/你的用户名/目录下),重新执行构建和启动步骤。

5. 确认项目devel模式配置

检查项目config/settings.yml文件,确保devel相关配置正确:

  • 确认approot字段设置为http://localhost:3000
  • 排查是否有自定义构建钩子或插件干扰devel模式的正常构建

内容的提问来源于stack exchange,提问作者mabe02

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:57:52