404 GET / 当 index.html 可用时

404 GET / When index.html is available

我正在尝试使用 Kemal 在 Crystal 中编写一个简单的静态站点。

按照 this page,我应该没问题,但是当我尝试加载网站时收到 404。

我的程序是这样的(你可以看到我注释掉的所有代码,试图追踪问题)

#require "./LiedThisWeek/*"
require "kemal"

#module LiedThisWeek
  # TODO Put your code here
#end

#finder = LieFinder.new
#handler = HyperTextHandler.new finder
#indexPath = "public/index.html"
#
#spawn do
#   loop do
#       finder.refresh
#       File.write indexPath, handler.getDoc
#       sleep 60.second
#   end
#end

Kemal.run

这是我的目录结构:

.
├── LICENSE
├── LiedThisWeek
├── README.md
├── lib (removed for brevity)
├── public
│   ├── css
│   │   └── style.css
│   ├── images
│   │   ├── fireworks.jpg
│   │   └── sad.jpg
│   └── index.html
├── shard.lock
├── shard.yml
├── spec
│   ├── LiedThisWeek_spec.cr
│   └── spec_helper.cr
└── src
    ├── LiedThisWeek
    │   ├── HyperTextHandler.cr
    │   ├── Lie.cr
    │   ├── LieFinder.cr
    │   └── version.cr
    └── LiedThisWeek.cr

32 directories, 112 files

这里是凯末尔作者。

默认情况下,Kemal 不会将 index.html 作为 /。但是,您可以使用 redirect

来实现
get "/" do |env|
  env.redirect "index.html"
end