-->

iisnode和表达(iisnode and express)

2019-07-31 17:12发布

我敢肯定,这个问题已经被问一百万次,但我还没有发现任何解决以下问题的呢。

我有一个基本的应用程序运行使用和的NodeJS明确。 当我运行在节点中的应用程序,它在默认情况下把我送到我的公用文件夹中的index.html。 即使我没有任何的路线设置。 我希望这种情况发生。

我已经安装iisnode创造下称为“设备”“默认网站”的新应用程序。 我摆在那里保持不变我的应用程序。 阅读周围,我需要出去与web.config中排序一些东西,并决定去与这里提到的配置(不是YAML):

http://tomasz.janczuk.org/2012/05/yaml-configuration-support-in-iisnode.html

当我尝试在我的浏览器加载应用了它总是试图找到我的app.js的路线,我如抛出回的消息:

不能得到/设备/

我真的很拉我的头发与这一个,不知道该怎么办! 我必须设置我app.js切入点内部静态内容的默认路由? 我在地方执行以下操作:

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(path.join(__dirname, 'public')));
});

但它仍然没有把我交给我的时候加载应用程序从它的根index.html的:

的 'http://本地主机/设备/'

任何人都可以帮我这个?

Answer 1:

一个很好的建议,可以发现: 一iisnode托管Web应用程序可以计算出在它被托管的虚拟路径? 从本质上讲,你可以使用一个小的变抽象路径和环境变量(如果存在)来控制它。 另一个好后(可能是更好的解决方案),可以发现https://github.com/tjanczuk/iisnode/issues/160



Answer 2:

解决这个问题的最简单方法是为应用程序创建一个专用的IIS网站,而不是像你这样一个IIS网站内创建一个IIS应用程序。

如果你有在IIS中的Node.js应用程式一个专门的网站,应用程序是在URL空间,如根访问http://myapp.com/ ,这是默认快递路由配置所期待的。 相反,如果你创建一个IIS网站内的IIS应用程序来承载您的Node.js应用程式(比如devices ),它是在URL从属于网站的根URL访问,如http://myapp.com/devices/ 。 额外的URL路径段( devices )是值得您的明确应用程序不期望并没有配置过程,因此它拒绝该请求。

如果你坚持托管Node.js的应用程序在IIS中的IIS应用程序,您将需要增加您的明确路由配置到预期的IIS应用程序的名称相匹配的额外的URL路径段。



文章来源: iisnode and express