Javascript 当我直接导航到路由时,我会得到服务器输出,但当我使用链接时,我会得到正确渲染的视图
我是个书呆子,正在制作mean.js样板文件 我创建了一些路由,但我遇到了一个问题,当我导航到某个路由(“/articles”)时,我会得到如下服务器输出: [{u-id:“5553aa4116a2fddc830b0f66”,“用户:{u-id:“5552398fcf7ada7563db68b7”,“显示名称”:“Mo” Bazazi“},“_v”:0,“内容”:“WAHATTATA”,“标题”:“第五” 示例,“创建”:“2015-05-13T19:47:13.905Z”}] 但是我想对渲染视图进行ge处理,即使我手动键入路线,有人有什么建议吗 这里是我的express配置的一部分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”}] 但是我想对渲染视
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将感谢您的想法