我正在尝试升级现有的快递站点以使用kraken.js
我的动态页面加载正常(到目前为止),但我似乎无法提供静态文件。
查看示例页面,看起来很简单,我只需要添加
"middleware": {
"static": {
"arguments": [ "path: ./client" ]
}
}
在我的config.json文件中。我正在尝试提供的文件是./client/build/js/bundle.js
,我可以确认该文件存在于该文件夹中。它不在./public
文件夹中。
我需要做些什么来让kraken(或kraken.js static-serve)找到我的静态文件?
我已将文件放在./public/client/build/js/bundle.js
中,并且kraken在该位置找到该文件没有问题。
答案 0 :(得分:0)
我认为您可能缺少中间件对象的“模块”成员。我目前的Kraken生成的静态中间件配置对象如下所示:
"static": {
"module": {
"arguments": [ "path:./.build" ]
}
}
好的,我发现了如何让它发挥作用。请注意您的配置中“公共”不在哪里?这意味着它正在预先设置或在其他地方配置。其他地方在/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" ]
}
},
请注意,在第二个参数中没有“。”在构建之前。
最后,我在主布局中使用了这样的脚本标记:
<script src="/js/test.js"></script>
因此,从您的根项目目录中我有/client/build/js/test.js和test.js正确加载。
此外,还有一种方法可以做到更容易,并且不需要在海妖源中进行捣乱。在主index.js文件中,您可以这样做:
app = module.exports = express();
app.use(kraken(options));
app.use(express.static('client')); // Add this line
答案 1 :(得分:0)
几天,然后几周,然后几个月过去了,没有任何效果。 我应该注意到我没有使用Yoeman,我们在工作中使用gulp,这可能是问题的一部分。
解决方案原来是
"middleware": {
"static": {
"route": "/public"
},
与kraken的任何文档看起来都非常不同。希望这有助于某人。