javascript - 用 grunt 重写 URL

标签 javascript url-rewriting gruntjs grunt-contrib-connect

我有一个应用程序需要更改一些网址。例如 localhost:9000 应该看起来像 localhost:9000/myapp

所有静态文件都将在 html 中有 url,如 myapp/style/main.css。但实际上myapp文件夹是不存在的,我只需要在url中显示即可。我不知道如何在内部重写它。

服务器是 "grunt-contrib-connect"

最佳答案

使用http-rewrite-middleware

安装后,将其放在 Gruntfile 的顶部

var rewriteModule = require('http-rewrite-middleware');

然后在你的连接 livereload 下做这样的事情:

livereload: {
    options: {
      open: 'http://localhost:9000/myapp',
      middleware: function(connect, options, middlewares) {

        // rewrite (make sure it is first)
        middlewares.unshift(rewriteModule.getMiddleware([
          {from: '^/myapp/(.*)', to: '/$1'}
        ]));

        //paths
        middlewares.push(connect.static('.tmp'));
        middlewares.push(connect().use(
          '/bower_components',
          connect.static('./bower_components')
        ));
        middlewares.push(connect.static(appConfig.app));

        return middlewares;
      },

关于javascript - 用 grunt 重写 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27991690/

相关文章:

node.js - 是否可以使用 grunt js 和/或 less css 将所有 css 放在一行中?

javascript - 如何在有序列表中显示字符串的各个部分

javascript - 如何在绑定(bind)函数上强制使用不同的指针

java - URLRewrite 过滤器不适用于多部分表单

php - 在 htaccess 上使用更具体的重写工具

javascript - 少任务未找到错误

javascript - 如何检测用户浏览器的视觉高度?

javascript - 使用 Object.create() 的 Angular 服务继承

apache - 如何重写所有不包含短语的非 ssl 请求?

css - 将两个字符串加在一起 ​​node-sass