我想在angular的route.js里templateUrl直接指向html文件,这样我在express的route可以省下几个get 的api 去render 文件过去了
在网上看到这个解决方案
测试过,这个还是会占用get的api去render文件过去,还是不能用angular的route去加载文件
想问下怎么解决?
设置了不用不就行了
@hpgt 不行,提示你没有设置default view engine
注释掉view engine的结果会是这样
直接sendFile怎么样? 如果设置了没有视图引擎,也就不能再调用render了
@darknighten app.js怎么写?就是上面设置引擎这段代码?
别沉,顶一下
试试这样行不行?
服务器: app.use(express.static(path.join(__dirname, ‘public’))); 路由: app.get(’/’, function(req,res) { res.sendfile(‘public/name_of_static_file.extension’); });
这个已经试过了不行,还是提示没有设置default engine
直接写这个呢?别的都不要了,就是当成静态文件服务器,还有没有提示?
app.use(express.static(__dirname + ‘/public’));
参考了这里:http://stackoverflow.com/questions/17911228/how-do-i-use-html-as-the-view-engine-in-express
如果要使用路由的话,就得自己写个简易的视图引擎 http://stackoverflow.com/a/23834230
@darknighten 静态文件服务器就没有意义了啊 我希望angular来控制模板的加载,如果你是静态文件服务器,那我在地址栏就可以输入路径,直接访问你具体的html文件了 但是我希望地址栏只漏出path或者state,angular根据这个state或者说path来去找templateUrl来 加载模板
templateUrl 里面的地址就写成静态文件服务器中对应的文件地址,就是让ng去访问静态文件就可以了,客户端看不到
.state('userLog', {
url: '/userLog',
templateUrl: '静态文件.html'
})
@darknighten 试过,但是你如果express不写get,render的话,这样不好用,还是出错
@darknighten 真的是试过各种方法了才求助的,希望看到一些我还没有试过的方法
┑( ̄Д  ̄)┍,持续关注中,顶起
@darknighten 有个大牛说让我全路由到index 然后就没继续说 没领悟到什么意思啊!
@THCloud 这个试试 <pre><code> var express = require(‘express’); var http = require(‘http’); var app = express();
app.use(express.static(__dirname + ‘/public’));
http.createServer(app).listen(3000); </code></pre>
@THCloud 把html文件放到/publc下,不放在views下
楼上说的应该可行 最好再加上history api fallback
来自酷炫的 CNodeMD
跳到同级下其他页面怎么写? 我这里跳index没有问题,跳到下一个页面就错了
@THCloud 你要前后端分离的话首页也可以不用后端渲染,就像在本地打开一个html页面然后调用接口
不知道楼主是怎么写的,我在app.js里直接注释掉了express的模板引擎设置,然后angular所有的静态文件都在app文件夹内
app.get('/', function (req, res) {
res.sendfile('app/index.html');
});
app.use(express.static(path.join(__dirname, 'app')));
然后通过这个把请求指向我angular文件夹的首页,这样是没有任何问题的