据我所知,为了从angularJS中删除主题标签,我需要添加以下代码:
config(function($locationProvider) {
$locationProvider.html5Mode(true);
}).
添加此代码后,我从我的简单服务器(web-server.js)获得404,这是一个提供角度tuotorial的简单服务器。
从stackoverflow我找到了2个链接,帮助我理解我需要添加路由到我的服务器以支持此操作。
AngularJs Routing without hashtag in link?
routing and clean path (no hashtag) not working in angularJS
好吧,我不明白如何添加web-server.js我需要的路由
我之前的链接是:/app/index.html/#cars 现在他是/app/index.html/car
我应该如何更改web-server.js以满足我的新路由需求?
感谢。
答案 0 :(得分:1)
使用路由设置节点服务器的最简单,最快捷的方法是使用Express框架。
使用Express非常简单的webapp骨架看起来像这样:
var http = require('http');
var express = require('express');
var app = express();
app.configure(function() {
app.set('views', __dirname + '/app');
app.set('view engine', 'ejs'); //EJS template engine (no HTML for now)
app.use('/public', express.static(__dirname + '/public')); //specify path to your static files
});
//"car", "bus", and "van" are the pages of your app
app.get('/:page(|car|bus|van)', function(req, res) {
res.render('index', {
page: req.params.page //pass page to the view (just in case)
});
});
http.createServer(app).listen(80);
然后你必须创建/app/index.ejs
文件,这个文件实际上是带有一些附加功能的html文件。
因此,当您在浏览器中导航到/car
,/bus
或/van
时,您会看到index.ejs
文件的内容。
希望这有帮助!
修改强>
我刚刚更正了/:page(|car|bus|van)
部分。请尝试上一个版本
修改2
哦,我忘了说,你必须从命令行npm install ejs
开始使用EJS模板