- 简而言之:当我访问
/
时,如何让st
为index.html
服务?*
我正在使用st module与Express(或Connect,无所谓)。下面是我的全部代码:
var st = require('st');
var path = require('path');
var connect = require('connect');
var app = connect();
app.use(st({
url: '/',
path: path.resolve(__dirname, 'public'),
index: 'index.html', // !!! PROBLEM LINE !!!
cache: false,
passthrough: true
}));
app.use(function(req, res) {
res.end('This is not served from the st module.');
});
app.listen(8000, function() { console.log('App started.'); });
当我访问localhost:8000/index.html
时,我看到了这个文件。当我访问localhost:8000/
时,我看不到索引HTML。
我尝试了以下index
选项,但没有成功:
index: false
index: true
index: 'index.html'
index: 'public/index.html'
index: path.resolve(__dirname, 'public/index.html')
当我访问/
时,如何让st
为index.html
提供服务?
3条答案
按热度按时间pxyaymoc1#
我实现了一个重定向,类似于:
而且很有效!
mbyulnm02#
将
index.html
移动到public目录。因为st
处理请求如下:这意味着您当前访问的URL必须是
app.use()
设置的选项url
的子URL。在本例中,您将
'/public'
Map到'/'
。因此,您不能使用public/index.html
,除非您在原始public
文件夹下创建另一个名为public
的文件夹,并将index.html
放入其中。您也不能使用
../index.html
,因为st
不允许这样做(您正在访问一个取消Map文件!),你会得到一个403
错误。如果仍然失败,请尝试其他Web浏览器。有一次我在Chrome上试了一下,没问题,但在Firefox上失败了。这可能是该高速缓存选项引起的。
aurhwmvo3#
这是:
对我很有效但我得先清除浏览器缓存。