Javascript 当我直接导航到路由时,我会得到服务器输出,但当我使用链接时,我会得到正确渲染的视图

Javascript 当我直接导航到路由时,我会得到服务器输出,但当我使用链接时,我会得到正确渲染的视图,javascript,angularjs,node.js,meanjs,Javascript,Angularjs,Node.js,Meanjs,我是个书呆子,正在制作mean.js样板文件 我创建了一些路由,但我遇到了一个问题,当我导航到某个路由(“/articles”)时,我会得到如下服务器输出: [{u-id:“5553aa4116a2fddc830b0f66”,“用户:{u-id:“5552398fcf7ada7563db68b7”,“显示名称”:“Mo” Bazazi“},“_v”:0,“内容”:“WAHATTATA”,“标题”:“第五” 示例,“创建”:“2015-05-13T19:47:13.905Z”}] 但是我想对渲染视

我是个书呆子,正在制作mean.js样板文件

我创建了一些路由,但我遇到了一个问题,当我导航到某个路由(“/articles”)时,我会得到如下服务器输出:

[{u-id:“5553aa4116a2fddc830b0f66”,“用户:{u-id:“5552398fcf7ada7563db68b7”,“显示名称”:“Mo” Bazazi“},“_v”:0,“内容”:“WAHATTATA”,“标题”:“第五” 示例,“创建”:“2015-05-13T19:47:13.905Z”}]

但是我想对渲染视图进行ge处理,即使我手动键入路线,有人有什么建议吗

这里是我的express配置的一部分

use strict';

/**
 * Module dependencies.
 */
var fs = require('fs'),
    http = require('http'),
    https = require('https'),
    express = require('express'),
    morgan = require('morgan'),
    bodyParser = require('body-parser'),
    session = require('express-session'),
    compress = require('compression'),
    methodOverride = require('method-override'),
    cookieParser = require('cookie-parser'),
    helmet = require('helmet'),
    passport = require('passport'),
    mongoStore = require('connect-mongo')({
        session: session
    }),
    flash = require('connect-flash'),
    config = require('./config'),
    consolidate = require('consolidate'),
    path = require('path');

module.exports = function(db) {
    // Initialize express app
    var app = express();

    // Globbing model files
    config.getGlobbedFiles('./app/models/**/*.js').forEach(function(modelPath) {
        require(path.resolve(modelPath));
    });

    // Setting application local variables
    app.locals.title = config.app.title;
    app.locals.description = config.app.description;
    app.locals.keywords = config.app.keywords;
    app.locals.facebookAppId = config.facebook.clientID;
    app.locals.jsFiles = config.getJavaScriptAssets();
    app.locals.cssFiles = config.getCSSAssets();

    // Passing the request url to environment locals
    app.use(function(req, res, next) {
        res.locals.url = req.protocol + '://' + req.headers.host + req.url;
        next();
    });

    // Should be placed before express.static
    app.use(compress({
        filter: function(req, res) {
            return (/json|text|javascript|css/).test(res.getHeader('Content-Type'));
        },
        level: 9
    }));

    // Showing stack errors
    app.set('showStackError', true);

    // Set swig as the template engine
    app.engine('server.view.html', consolidate[config.templateEngine]);

    // Set views path and view engine
    app.set('view engine', 'server.view.html');
    app.set('views', './app/views');
所以Claies是对的-这是HTML5的问题-我一直在研究这一点,并试图为express config设置一个全面的配置-我在下面添加了这一部分:

// Setting the app router and static folder
    app.use(express.static(path.resolve('./public')));

    app.get('/', function(req, res) {
      res.render('index');
    });

    // Globbing routing files
    config.getGlobbedFiles('./app/routes/**/*.js').forEach(function(routePath) {
        require(path.resolve(routePath))(app);
    });

    app.get('*', function(req, res) {
      res.redirect('/');
    });

问题是,我使用的是mean.js样板文件,它们有自定义的基于全局的路由,这与我的catchall不兼容,即我的资源无法正常使用catchall,尽管他们正在重新路由到正确的模板-有什么想法吗?

您可能想尝试为Clarity重新编写标题听起来您在服务器和客户端上有相同的路由,并且在应用程序中使用
HTML5模式
。此配置将无法按预期方式工作。我已经写了几篇关于HTML5模式的文章,最新的一篇在这里。那篇文章描述了一个IIS配置,但是所有服务器技术的概念都是相似的。实际上,使用
HTML5模式
,您不能在服务器和客户端上都有路由。嗨,克莱斯-我已经在上面做了编辑,adn将感谢您的想法