我正在尝试升级现有的express站点以使用kraken.js
我的动态页面加载正常(到目前为止),但我似乎不能提供静态文件。
看一下示例pages,它看起来非常简单,我只需要添加
"middleware": {
"static": {
"arguments": [ "path: ./client" ]
}
}在我的config.json文件中。我尝试提供的文件是./client/build/js/bundle.js,我可以确认该文件是否存在于该文件夹中。它不在./public文件夹中。
我需要做什么才能让kraken (或kraken.js静态服务)找到我的静态文件?
我已经将该文件放在./public/client/build/js/bundle.js中,kraken在该位置找到该文件没有任何问题。
发布于 2014-12-16 00:25:29
我认为您可能遗漏了中间件对象的"module“成员。我当前的Kraken生成的静态中间件配置对象如下所示:
"static": {
"module": {
"arguments": [ "path:./.build" ]
}
}好了,我知道怎么让它工作了。注意到你的配置中没有"public“吗?这意味着它被预先挂起或在其他地方配置。其他位置在/node-modules/kraken-js/config/config.json中。我将其修改为如下所示:
"static": {
"enabled": true,
"priority": 40,
"module": {
"name": "serve-static",
"arguments": [ "path:./public", "path:./client" ]
}
},然后,在您的常规/config/config.json中,我将静态对象编辑为如下所示:
"static": {
"module": {
"arguments": [ "path:./.build", "path:./build" ]
}
},请注意,在第二个参数中没有".“在构建之前。
最后,我在master布局中使用了如下所示的脚本标记:
<script src="/js/test.js"></script>因此,从您的根项目目录中,我可以正确地加载/client/build/js/test.js和test.js。
此外,还有一种更简单的方法,它不需要在kraken源代码中浪费时间。在主index.js文件中,您可以执行以下操作:
app = module.exports = express();
app.use(kraken(options));
app.use(express.static('client')); // Add this line发布于 2015-03-26 08:04:11
几天,然后几周,然后几个月过去了,什么都没有起作用。我应该注意到,我没有使用Yoeman,而我们在工作中使用gulp,这可能是问题的一部分。
解决方案被证明是
"middleware": { "static": { "route": "/public" },
它看起来与kraken的任何文档都有很大的不同。希望这对某些人有帮助。
https://stackoverflow.com/questions/27478282
复制相似问题