2014-11-04 30 views
0

我有這個server.js文件創建一個本地服務器。Node.js根據子域重定向樣式和資源文件夾

//server.js 
var connect = require('connect'); 
connect.createServer(
    connect.static(__dirname) 
).listen(8080); 

它使用節點包連接到同一目錄名稱在我的web應用程序是啓動一個本地主機。我想擴展這個代碼,這樣我就可以擁有一個子域。

當我把地址本地主機:8080 /公司A我希望鏈接:

<link rel="stylesheet" href="resources/css/bootstrap.css" type="text/css" /> 

被重定向到:

<link rel="stylesheet" href="companyA/css/bootstrap.css" type="text/css" /> 

所以恢復。我希望我的網站根據子域名進行樣式設計。只有資源文件夾將被重定向。

希望有人能幫忙。謝謝

注:我想索引文件保持原樣,而不使用它的模板或標記語言。基本上我應該能夠使用一些路由規則來實現這一點。

回答

1

您可以使用Jade標記語言解決重定向問題。例如

app.get('/:company/path', function(req, res){ 
    var subdomain = req.params.company; 
    res.render('myview', {subd: subdomain}); 
}); 

現在視圖中,myview.jade

link(rel='stylesheet', href=#{subd}/css/bootstrqp.css, type="text/css") 

另一種選擇是隻完成重定向的路線

app.get('/:company/css/:file', function(req, res){ 
    var options = { 
     root: __dirname + '/public/' + req.params.company, // wherever your css files are located 
     dotfiles: 'deny', 
     index: false 
     headers: { 
      'x-timestamp': Date.now(), 
      'x-sent': true 
     }; 
    }; 

    res.sendFile(req.params.file, options, function(err){ 
     // css files sent. hooray! 
    }); 

}); 
+0

感謝takinola的事情是我想保持索引原樣而不使用模板/標記語言語言。 – Dave 2014-11-13 19:33:29

+0

有一種方法可以實現你想要的功能,但是需要先使用靜態文件服務併爲css文件編寫路由。這對你來說是否合理? – takinola 2014-11-13 22:01:28

+0

這將是一個好的開始。你能寫一個路由規則尋址css的小例子嗎? – Dave 2014-11-14 20:51:30

相關問題