簡體   English   中英

iisnode和快遞

[英]iisnode and express

我確定這個問題已被問了一百萬次,但我還沒有找到解決以下問題的方法。

我有一個使用nodejs和express運行的基本應用程序。 當我在節點中運行應用程序時,它默認將我發送到我公共文件夾中的index.html。 即使我沒有設置任何路線。 我希望這發生。

我安裝了iisnode並在'Default Website'下創建了一個名為'Devices'的新應用程序。 我把我的申請保持不變。 閱讀我需要用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://本地主機/設備/'

有人能幫我解決這個問題嗎?

解決此問題的最簡單方法是為您的應用程序創建專用的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托管的Web應用程序是否可以在其托管的虛擬路徑上運行? 實質上,您使用一個小變量來抽象路徑和一個環境變量(如果它存在)來控制它。 另一個好帖子(可能更好的解決方案)可以在https://github.com/tjanczuk/iisnode/issues/160找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM