Javascript 使用角形和特快列车处理路线
我有一个应用程序,试图删除我的路线的hashbang(Javascript 使用角形和特快列车处理路线,javascript,angularjs,Javascript,Angularjs,我有一个应用程序,试图删除我的路线的hashbang(!和#)前缀,但仍有人能够使用书签路线。在大多数情况下,我都能将HTML5模式设置为true,但也有一些情况下它不起作用。以下是我配置服务器的方式: var router = require('./router')(app); app.use(express.static(path.join(__dirname, '../client'))); app.get('*', function (req, res, next) { res.se
!
和#
)前缀,但仍有人能够使用书签路线。在大多数情况下,我都能将HTML5模式
设置为true
,但也有一些情况下它不起作用。以下是我配置服务器的方式:
var router = require('./router')(app);
app.use(express.static(path.join(__dirname, '../client')));
app.get('*', function (req, res, next) {
res.sendFile('index.html', {root:'../client/app/'});
});
路由器
在这种情况下如下所示:
var express = require('express');
var router = express.Router();
var Products = require('../../database').Products;
router.get('/:flavor', function (req, res) {
var flavor = req.params.flavor;
Products.findOne({flavor:flavor}, function (err, product) {
if (err) {
throw err
}
res.json(product);
});
获取
风味
路线是此设置不起作用的一种情况。如果有人直接在浏览器中键入,mysite.com/lemon
他们只会收到JSON
数据(没有模板或任何东西)。通常,angular应用程序会使用此选项(通常会向/lemon
发出请求,并将其实现到模板中)。但是,如果我将路由器
移动到app.get('*')
下面,Angular对数据发出的任何请求都将与整个index.html
页面一起返回。如何使浏览器对通常返回JSON
的路由的直接请求发送索引文件 如果不是API请求,则需要始终返回索引。router.get('/',function(req,res){/*返回索引*/})
orrouter.get('/api/:flavor',function(req,res){/*您的产品代码*/})你最后的建议就是我用的。