Html 包NodeWebkit和Web服务器

Html 包NodeWebkit和Web服务器,html,node.js,webserver,node-webkit,embeddedwebserver,Html,Node.js,Webserver,Node Webkit,Embeddedwebserver,我的应用已经准备好发布,我已经决定使用NodeWebkit。现在,问题是我的应用程序加载本地文件,我需要一个web服务器。如何将NodeWebkit和某些web服务器打包在一起?如果无法将web服务器添加到NodeWebkit,如何将文件(图像、脚本、css)加载到html中?谢谢!:) Node webkit基本上是Node.js和chromium浏览器的组合。如果您想将服务器与应用程序一起使用,可以在节点中编写服务器 签出主节点 在您的package.json中 { "name": "n

我的应用已经准备好发布,我已经决定使用NodeWebkit。现在,问题是我的应用程序加载本地文件,我需要一个web服务器。如何将NodeWebkit和某些web服务器打包在一起?如果无法将web服务器添加到NodeWebkit,如何将文件(图像、脚本、css)加载到html中?谢谢!:)


Node webkit基本上是Node.js和chromium浏览器的组合。如果您想将服务器与应用程序一起使用,可以在节点中编写服务器

签出主节点

在您的package.json中

{
  "name": "nw-demo",
  "node-main": "index.js",
  "main": "index.html"
}
modemain
基本上是一个在上下文中运行并在应用程序启动时启动的脚本

脚本将在不会被销毁的节点上下文中运行 Webkit中的跨页面导航,因此可以使用它编写一些 “后台”或类似“守护进程”的代码

因此,您可以在127.0.0.1上本地编写和启动服务器,并与之通信


如果您只关心加载资源,那么可以通过提供绝对或相对路径直接添加它们

例如:

<link rel="stylesheet" type="text/css" href="/bower_components/angular-ui-grid/ui-grid.css"/>
<script src="/bower_components/jquery/dist/jquery.min.js"></script>


使用应用程序协议

此外,nw.js中还提供了一个
app://
协议,您可以使用该协议在本地访问文件。看

注:

路径的根指向应用程序的目录,即 清单文件所在的目录


首先,谢谢你的帮助!其次,我的应用程序根本无法使用应用程序协议,我尝试了,但它无法工作。第三,我想使用web服务器,但每次在node main中执行命令(任何命令)时,nw.js都会打开并退出。这是什么原因造成的?谢谢你的帮助!:)您是否在清单中尝试了应用程序路径<代码>“主”:app://whatever/index.html“,。您可以确认节点主脚本应该是独立的,并且不能在任何HTML中引用。如果节点中的语句无效或不受支持,即警报,则nw.js将打开并退出。即使您试图从node main访问窗口,nwjs也会退出。我已经尝试了应用程序路径,但如果没有web服务器,我的应用程序根本无法工作,我不知道为什么?另外,我把我的代码放在上面的问题中,你能看看我的节点主代码并告诉我为什么它会打开和关闭吗?谢谢我还有一个问题。您可以看到,我已将代码设置为使用8888端口,如果该端口已被使用,该怎么办?在这种情况下我该怎么办?我运行了你的节点主代码,它抛出了一个错误
错误:listen EADDRINUSE:::8888
。这表明该地址已在使用中。然后我在没有设置超时的情况下编写了相同的代码,并且运行良好。我认为
setTimeout
导致服务器两次获得地址。但在这两种情况下,服务器都运行良好。我将请求发送到
127.0.0.1:8888
,我的请求得到处理,状态代码为200。您正在使用哪个版本的nwjs以及在哪个操作系统中
<link rel="stylesheet" type="text/css" href="/bower_components/angular-ui-grid/ui-grid.css"/>
<script src="/bower_components/jquery/dist/jquery.min.js"></script>