1
我想使用express.js爲單個頁面應用(角核)定義默認路由。當請求靜態文件並且它不存在於路由中時,會發生該問題。在這種情況下,將返回默認頁面內容而不是404狀態(未找到)。示例代碼:如何定義不包含靜態資源的默認路由
var path = require('path');
var express = require('express');
var app = express();
var router = express.Router();
router.use(express.static(path.join(__dirname, '/scripts')));
router.get('*', function(request, response) {
response.sendFile(path.join(__dirname, 'views/index.html'));
});
app.use(router);
app.listen(80);
是存在一個很好的解決方案,以排除對靜態文件的默認路由和處理404狀態正常嗎?對於文件url而不是通配符的正則表達式是否是一個好方法?
好的,謝謝!什麼情況下,當我有20個靜態處理程序?我應該創建另一個父目錄,把所有的靜態文件夾給他們,並驗證它在默認路由? – estradowiec
我更新了我的答案以解決您的評論。 20個靜態處理程序有點雄心勃勃;) - 您只需要一個靜態處理程序,並將您的資產組合在一起。 –
太棒了!我可以使用多個靜態處理程序,因爲我的應用程序是可插入的。換句話說,應用程序中的每個插件都可以擁有自己的靜態資源。 – estradowiec