Node.js 快速模式配置,加载部分时出现问题
服务器在“开发”模式下查找视图,而不是在“生产”模式下。它显示的不是真实视图,而是404视图 例如,使用此路由“/登录”:Node.js 快速模式配置,加载部分时出现问题,node.js,angularjs,express,Node.js,Angularjs,Express,服务器在“开发”模式下查找视图,而不是在“生产”模式下。它显示的不是真实视图,而是404视图 例如,使用此路由“/登录”: 它可以工作:使用开发代码(案例1),获取视图/login.html提供真实的登录内容 它不起作用:使用生产代码(案例2),获取视图/login.html提供我的404视图的内容 为了在开发模式下测试这两种配置,我只需手动切换代码。以下是我的一些Express配置: // Express Configuration app.configure('developme
- 它可以工作:使用开发代码(案例1),获取视图/login.html提供真实的登录内容
- 它不起作用:使用生产代码(案例2),获取视图/login.html提供我的404视图的内容
// Express Configuration
app.configure('development', function(){
// CASE 2: PRODUCTION CONFIG TO TEST
app.use(express.favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(express.static(path.join(__dirname, 'public')));
app.set('views', __dirname + '/views');
/* CASE 1: REAL DEVELOPMENT CONFIG
app.use(require('connect-livereload')());
app.use(express.static(path.join(__dirname, '.tmp')));
app.use(express.static(path.join(__dirname, 'app')));
app.use(express.errorHandler());
app.set('views', __dirname + '/app/views');
*/
});
app.configure('production', function(){
app.use(express.favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(express.static(path.join(__dirname, 'public')));
app.set('views', __dirname + '/views');
});
app.configure(function(){
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
// Router needs to be last
app.use(app.router);
});
// Controllers
var api = require('./lib/controllers/api'),
controllers = require('./lib/controllers');
// Angular Routes
app.get('/views/*', controllers.partials);
app.get('/*', controllers.index);
以下是在开发模式下使用的体系结构:
->应用程序
---->剧本
---->观点
------>login.html
------>404.html
以下是prod模式下的架构和使用的文件夹(在“grunt build”之后):
->公开的
->观点
--->login.html
--->404.html很抱歉,但对我来说,这似乎是一个“解决我的生产问题”的问题。它甚至与angularjs无关。人们误解了返回404部分的原因。与客户端路由无关?客户端请求加载部分路由,服务器找不到,返回404。您可以通过在浏览器中键入url来尝试同样的方法。是的,您是对的,因此这是100%的express配置问题它是否至少在非工作模式下向您显示favicon?文件是否具有正确的读取权限?您在生产模式中使用的。