我尝试返回
load.css
文件和 index.html
,但它给了我 404 错误。我尝试手动读取文件并设置 res.body == load.css
数据,但这会使请求卡在加载上。
我做错了什么?
void foo() {
crow::SimpleApp app;
crow::mustache::set_global_base("/home/cereza/testing/src/frontend/src/");
CROW_ROUTE(app, "/") ([] () {
auto page = crow::mustache::load("html/index.html");
return page.render();
});
CROW_ROUTE(app, "/style/load.css") ([] () {
crow::response res;
res.set_static_file_info("style/load.css");
return res;
});
}
我已经尝试更改路径并测试文件是否正在读取。
您不需要为 JS 和 CSS 文件制作单独的路由。这些是您的网站提供的“静态”文件,它们位于一个名为“static”的特殊文件夹中。
您的项目结构应该如下所示:
└── appRoot/
├── static/
│ ├── jsFile1.js
│ ├── jsFile2.js
│ ├── cssFile1.css
│ └── cssFile2.css
├── templates/
│ ├── index.html
│ └── page2.html
├── server.cpp
└── otherCppFile.cpp
从服务器中删除额外的路由:
int main() {
crow::SimpleApp app;
crow::mustache::set_global_base("/home/cereza/testing/src/frontend/src/");
CROW_ROUTE(app, "/") ([] () {
auto page = crow::mustache::load("html/index.html");
return page.render();
});
}
然后在你的
index.html
文件中,你可以像平常一样包含js和css:
<link rel="stylesheet" href="/static/cssFile1.css">
<script src="/static/jsFile1.js"></script>