在没有index.html的MEAN堆栈应用程序中快速重写干净URL

时间:2017-09-28 06:36:46

标签: angularjs .htaccess express url-rewriting mean-stack

与许多其他干净的角度URL重写一样,在像localhost:3000/profile这样干净的网址上刷新页面时,我收到GET /profile 404错误。我一直在尝试使用Express Rewrite发送index.html文件,但据我所知,我没有index.html发送,因为直到{{1}才会呈现} route。

我在index.js中尝试了以下内容:

app.js

并接收app.all('/*', function(req, res, next) { // Just send the index.html for other files to support HTML5Mode res.sendFile('index.html', { root: __dirname }); });

我的目录看起来像this image here,我可以看到根目录中没有index.html文件。我尝试了Error: ENOENT: no such file or directory, stat 'C:\xampp\htdocs\healthyu\healthyu\index.html'views/index.htmlviews/index.ejs没有运气,views/index实际上提示download when I refreshed the page

有没有办法使用Express成功重写URL,或者在views/index.ejs文件中使用mod重写会更成功吗?

1 个答案:

答案 0 :(得分:0)

所以我需要做的是更改我的所有服务器请求,这些请求是API请求使用/api前缀,所以get /api/posts以减少与get /posts的冲突,这是{原始API调用和视图名称以及其他冲突。

我的index.html文件是在我的快递routes/index.js文件中生成的,因此每当我尝试导航到与主入口点不同的网址时,我只需要确保使用该文件。代码的相关部分如下所示:



var index = require('./routes/index');
var users = require('./routes/users');

app.use('/', index);
app.use('/api', index);
app.use('/users', users);

app.use("/*", index);