Javascript 使用角形和特快列车处理路线

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

我有一个应用程序,试图删除我的路线的hashbang(
#
)前缀,但仍有人能够使用书签路线。在大多数情况下,我都能将
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){/*返回索引*/})
or
router.get('/api/:flavor',function(req,res){/*您的产品代码*/})