CNode

Angular跟Express结合,怎么设置不使用template engine?

问答
TTHCloud发布于10 年前最后回复10 年前21 回复6602 浏览0 收藏

我想在angular的route.js里templateUrl直接指向html文件,这样我在express的route可以省下几个get 的api 去render 文件过去了

在网上看到这个解决方案

1.jpg

测试过,这个还是会占用get的api去render文件过去,还是不能用angular的route去加载文件

想问下怎么解决?

查看回复

回复 (21)

Y
yuedun#1·10 年前

设置了不用不就行了

T
THCloud#2·10 年前
引用 yuedun设置了不用不就行了

@hpgt 不行,提示你没有设置default view engine

T
THCloud#3·10 年前

2.jpg 注释掉view engine的结果会是这样

D
darknighten#4·10 年前

直接sendFile怎么样? 如果设置了没有视图引擎,也就不能再调用render了

T
THCloud#5·10 年前
引用 darknighten直接sendFile怎么样? 如果设置了没有视图引擎,也就不能再调用render了

@darknighten app.js怎么写?就是上面设置引擎这段代码?

T
THCloud#6·10 年前

别沉,顶一下

D
darknighten#7·10 年前
引用 THCloud@darknighten app.js怎么写?就是上面设置引擎这段代码?

@THCloud

试试这样行不行?

服务器: app.use(express.static(path.join(__dirname, 'public'))); 路由: app.get('/', function(req,res) { res.sendfile('public/name_of_static_file.extension'); });

T
THCloud#8·10 年前

这个已经试过了不行,还是提示没有设置default engine

D
darknighten#9·10 年前
引用 THCloud这个已经试过了不行,还是提示没有设置default engine

@THCloud

直接写这个呢?别的都不要了,就是当成静态文件服务器,还有没有提示?

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

T
THCloud#10·10 年前
引用 darknighten@THCloud 直接写这个呢?别的都不要了,就是当成静态文件服务器,还有没有提示? app.use(express.static( dirname + '/public')); 参考了这里:...

@darknighten 静态文件服务器就没有意义了啊 我希望angular来控制模板的加载,如果你是静态文件服务器,那我在地址栏就可以输入路径,直接访问你具体的html文件了 但是我希望地址栏只漏出path或者state,angular根据这个state或者说path来去找templateUrl来 加载模板

D
darknighten#11·10 年前

templateUrl 里面的地址就写成静态文件服务器中对应的文件地址,就是让ng去访问静态文件就可以了,客户端看不到

    .state('userLog', {
        url: '/userLog',
        templateUrl: '静态文件.html'
    })
T
THCloud#15·10 年前
引用 darknighten@THCloud ┑( ̄Д  ̄)┍,持续关注中,顶起

@darknighten 有个大牛说让我全路由到index 然后就没继续说 没领悟到什么意思啊!

M
m1jkey#16·10 年前

@THCloud 这个试试

M
m1jkey#17·10 年前

@THCloud 把html文件放到/publc下,不放在views下

K
Kaijun#18·10 年前

楼上说的应该可行 最好再加上history api fallback

来自酷炫的 CNodeMD

T
THCloud#19·10 年前
引用 m1jkey@THCloud 把html文件放到/publc下,不放在views下

跳到同级下其他页面怎么写? 我这里跳index没有问题,跳到下一个页面就错了

Y
yuedun#20·10 年前
引用 THCloud@hpgt 不行,提示你没有设置default view engine

@THCloud 你要前后端分离的话首页也可以不用后端渲染,就像在本地打开一个html页面然后调用接口

S
scarletmu#21·10 年前

不知道楼主是怎么写的,我在app.js里直接注释掉了express的模板引擎设置,然后angular所有的静态文件都在app文件夹内

app.get('/', function (req, res) {
  res.sendfile('app/index.html');
});
app.use(express.static(path.join(__dirname, 'app')));

然后通过这个把请求指向我angular文件夹的首页,这样是没有任何问题的

参与回复
登录后即可参与回复。登录