Grunt服务器不使用虚拟主机名称为我的应用程序..vhost和httpd设置,但咕噜不使用它们 [英] Grunt server does not use virtual host name for my app..vhost and httpd are set up but grunt is not using them

查看:166
本文介绍了Grunt服务器不使用虚拟主机名称为我的应用程序..vhost和httpd设置,但咕噜不使用它们的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我试图用名称来设置我的应用程序,而不是使用127 0 0 1.
每次运行grunt时,我的地址都是 http://127.0.0.1: 9000 /#/ ... ...我尝试了很多东西,没有任何工作......我总是被重定向到那个地方。



这里是我的文件:

httpd.conf

 < VirtualHost *:80> 
DocumentRoot/ Users / myusername / Sites / MyApp / app
ServerName myapp.dev
<目录/ Users / myusername / Sites / MyApp / app>
选项FollowSymLinks MultiViews索引
AllowOverride全部
订单允许,拒绝
拒绝无
允许所有
< / Directory>
< / VirtualHost>

hosts

  127.0.0.1 myapp.dev 
:: 1 myapp.dev

Gruntfile .js

  // 2013-11-08使用generator-angular生成0.5.1 $ b $'use strict' ; 

//#Globbing
//出于性能原因,我们只匹配一个级别:
//'test / spec / {,* /} *。js'
//如果要递归匹配所有子文件夹,请使用它:
//'test / spec / ** / *。js'

module.exports = function(grunt ){
require('load-grunt-tasks')(grunt);
require('time-grunt')(grunt);

grunt.initConfig({
yeoman:{
//可配置路径
app:require('./ bower.json')。appPath ||'app ',
dist:'dist'
},
watch:{
coffee:{
files:['<%= yeoman.app%> /脚本/ {,* /} *。coffee'],
任务:['coffee:dist']
},
coffeeTest:{'test / spec / {,* / }*.coffee'],
任务:['coffee:test']
},
指南针:{'b $ b files:['<%= yeoman.app%> / styles / {,* /} *。{scss,sass}'],
tasks:['compass:server','autoprefixer']
},
样式:{'b $ b files:['<%= yeoman.app%> / styles / {,* /} * .css'],
tasks:['copy:styles',' autoprefixer']
},
livereload:{
options:{
livereload:'<%= connect.options.livereload%>'
},
档案:[
'<%= yeoman.app%> / {,* /} *。html',
'.tmp / styles / {,* /} *。css',
'{.tmp ,<%= yeoman.app%>} / scripts / {,* /} *。js',
'<%= yeoman.app%> / images / {,* /} *。 {png,jpg,jpeg,gif,webp,svg}'
]
}
},
autoprefixer:{
options:['last 1 version']] ,
dist:{
files:[{
expand:true,
cwd:'.tmp / styles /',
src:'{,* /} * .css',
dest:'.tmp / styles /'
}]
}
},
connect:{
options:{
port:9000,
//将其更改为'0.0.0.0'以从外部访问服务器。
主机名:'myapp.dev',
livereload:35729
},
livereload:{
options:{
open:true,
base:[
'.tmp',
'<%= yeoman.app%>'
]
}
},
test :{
options:{
port:9001,
base:[
'.tmp',
'test',
'<%= yeoman.app%>'
]
}
},
dist:{
选项:{
base:'<%= yeoman。 dist%>'
}
}
},
clean:{
dist:{
files:[{
dot:true ,
src:[
'.tmp',
'<%= yeoman.dist%> / *',
'!<%= yeoman.dist% > / .git *'
]
}]
},
server:'.tm p'
},
jshint:{
选项:{
jshintrc:'.jshintrc'
},
全部:[
' Gruntfile.js',
'<%= yeoman.app%> / scripts / {,* /} *。js'
]
},
coffee:{
选项:{
sourceMap:true,
sourceRoot:''
},
dist:{
files:[{
expand: true,
cwd:'<%= yeoman.app%> / scripts',
src:'{,* /} *。coffee',
dest:'.tmp /脚本',
ext:'.js'
}]
},
测试:{
文件:[{
展开:true,
cwd:'test / spec',
src:'{,* /} *。coffee',
dest:'.tmp / spec',
ext:'.js'
}]
}
},
指南针:{
选项:{
sassDir:'<%= yeoman.app%> / styles ',
cssDir:'.tmp / styles',
generatedImagesDir:'.tmp / images / generated',
imagesDir:'<%= yeoman.app%> / images',
javascriptsDir:'<%= yeoman.app%> / scripts',
fontsDir:'<%= yeoman.app%> / styles / fonts',
importPath:'<% = yeoman.app%> / bower_components',
httpImagesPath:'/ images',
httpGeneratedImagesPath:'/ images / generated',
httpFontsPath:'/ styles / fonts',
relativeAssets:false
},
dist:{},
服务器:{
选项:{
debugInfo:true
}
}
},
//不使用,因为Uglify任务没有concat,
//但是如果需要仍然可用
/ * concat:{
dist:{}
},* /
rev:{
dist:{
files:{
src:[
'<%= yeoman.dist%> /scripts/{,*/}*.j s',
'<%= yeoman.dist%> / styles / {,* /} * .css',
'<%= yeoman.dist%> / images / { ,* /} *。{png,jpg,jpeg,gif,webp,svg}',
'<%= yeoman.dist%> / styles / fonts / *'
]


$ b $ useminPrepare {
html:'<%= yeoman.app%> /index.html',
options: {
dest:'<%= yeoman.dist%>'
}
},
usemin:{
html:['<%= yeoman .dist%> / {,* /} *。html'],
css:['<%= yeoman.dist%> / styles / {,* /} *。css'],
选项:{
dirs:['<%= yeoman.dist%>']
}
},
imagemin:{
dist: {
files:[{
expand:true,
cwd:'<%= yeoman.app%> / images',
src:'{,* /} *。{png,jpg,jpeg}',
dest:'<%= yeoman.dist%> / images'
}]
}
},
svgmin:{
dist:{
files:[{
expand:true,
cwd:'<%= yeoman。 '',
src:'{,* /} *。svg',
dest:'<%= yeoman.dist%> / images'
} ]
}
},
cssmin:{
//默认情况下,你的`index.html`<! - Usemin Block - >会照顾
//缩小。如果您不想使用
// Usemin块,则此选项已预先配置。
// dist:{
//文件:{
//'<%= yeoman.dist%> /styles/main.css':[
// '.tmp / styles / {,* /} * .css',
//'<%= yeoman.app%> / styles / {,* /} * .css'
/ /]
//}
//}
},
htmlmin:{
dist:{
options:{
/ * removeCommentsFromCDATA :true,
// https://github.com/yeoman/grunt-usemin/issues/44
// collapseWhitespace:true,
collapseBooleanAttributes:true,
removeAttributeQuotes: true,
removeRedundantAttributes:true,
useShortDoctype:true,
removeEmptyAttributes:true,
removeOptionalTags:true * /
},
files:[{
展开:true,
cwd:'<%= yeoman.app%>',
src:['* .html','views / *。html'],
dest:'<%= yeoman.dis t $>


$ //将文件不在其他任务中处理
copy {
dist:{
文件:[{
expand:true,
dot:true,
cwd:'<%= yeoman.app%>',
dest:' <%= yeoman.dist%>',
src:[
'*。{ico,png,txt}',
'.htaccess',
'bower_components / ** / *',
'images / {,* /} *。{gif,webp}',
'styles / fonts / *'
]
}, {
expand:true,
cwd:'.tmp / images',
dest:'<%= yeoman.dist%> / images',
src:[
'generated / *'
]
}]
},
styles:{
expand:true,
cwd:'< %= yeoman.app%> / styles',
dest:'.tmp / styles /',
src:'{,* /} *。css'











'样式'
],
测试:[
'咖啡',
'罗盘',
'复制:样式'
],
dist:[
'咖啡',
'指南针:dist',
'copy:styles',
'imagemin',
'svgmin',
'htmlmin'
]
},
karma:{
单元:{
configFile:'karma.conf.js',
singleRun:true
}
},
cdnify:{
dist:{
html:['<%= yeoman.dist%> / *。html']
}
},
ngmin:{
dist:{
files:[{
expand:true,
cwd:'<% = yeoman.dist%> / scripts',
src:'* .js',
dest:'<%= yeoman.dist %> / scripts'
}]
}
},
uglify:{
dist:{
files:{
'< ;%= yeoman.dist%> /scripts/scripts.js':[
'<%= yeoman.dist%> /scripts/scripts.js'
]
}
}
}
});

grunt.registerTask('server',function(target){
if(target ==='dist'){
return grunt.task.run(['build ','connect:dist:keepalive']);
}

grunt.task.run([
'clean:s​​erver',
'concurrent:server ',
'autoprefixer',
'connect:livereload',
'watch'
]);
});

grunt.registerTask('test',[
'clean:s​​erver',
'concurrent'test',$ b $'autoprefixer',
' connect:test',
'karma'
]);

grunt.registerTask('build',[
'clean:dist',
'useminPrepare',
'concurrent'dist',
' autoprefixer',
'concat',
'copy'dist',
'cdnify',
'ngmin',
'cssmin',
' uglify',
'rev',
'usemin'
]);

grunt.registerTask('default',[
'jshint',
'test',
'build'
]);
};


解决方案

@Dmitry Nikitenko是正确的,你不需要Apache的。您需要更改您的Gruntfile



主机名选项仅用于指定livereload应连接的位置。这不会更改您启动Grunt时打开的默认网址。您需要的是在您的livereload选项中为打开指定一个URL。例如:

  livereload:{
options:{
open:'http:// myapp。 dev:9000',
base:[
'.tmp',
'<%= yeoman.app%>'
]
}


So I am trying to setup my app with a name rather than using 127 0 0 1. Every single time I run grunt, my address is http://127.0.0.1:9000/#/ ... I've tried many things and nothing is working...I always get redirected to that place.

Here are my files:

httpd.conf

<VirtualHost *:80>
    DocumentRoot "/Users/myusername/Sites/MyApp/app"
    ServerName myapp.dev
    <Directory "/Users/myusername/Sites/MyApp/app">
    Options FollowSymLinks MultiViews Indexes
    AllowOverride All
    Order allow,deny
    Deny from none
    Allow from all
    </Directory>
</VirtualHost>

hosts

127.0.0.1 myapp.dev
::1 myapp.dev

Gruntfile.js

// Generated on 2013-11-08 using generator-angular 0.5.1
'use strict';

// # Globbing
// for performance reasons we're only matching one level down:
// 'test/spec/{,*/}*.js'
// use this if you want to recursively match all subfolders:
// 'test/spec/**/*.js'

module.exports = function (grunt) {
  require('load-grunt-tasks')(grunt);
  require('time-grunt')(grunt);

  grunt.initConfig({
    yeoman: {
      // configurable paths
      app: require('./bower.json').appPath || 'app',
      dist: 'dist'
    },
    watch: {
      coffee: {
        files: ['<%= yeoman.app %>/scripts/{,*/}*.coffee'],
        tasks: ['coffee:dist']
      },
      coffeeTest: {
        files: ['test/spec/{,*/}*.coffee'],
        tasks: ['coffee:test']
      },
      compass: {
        files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
        tasks: ['compass:server', 'autoprefixer']
      },
      styles: {
        files: ['<%= yeoman.app %>/styles/{,*/}*.css'],
        tasks: ['copy:styles', 'autoprefixer']
      },
      livereload: {
        options: {
          livereload: '<%= connect.options.livereload %>'
        },
        files: [
          '<%= yeoman.app %>/{,*/}*.html',
          '.tmp/styles/{,*/}*.css',
          '{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js',
          '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
        ]
      }
    },
    autoprefixer: {
      options: ['last 1 version'],
      dist: {
        files: [{
          expand: true,
          cwd: '.tmp/styles/',
          src: '{,*/}*.css',
          dest: '.tmp/styles/'
        }]
      }
    },
    connect: {
      options: {
        port: 9000,
        // Change this to '0.0.0.0' to access the server from outside.
        hostname: 'myapp.dev',
        livereload: 35729
      },
      livereload: {
        options: {
          open: true,
          base: [
            '.tmp',
            '<%= yeoman.app %>'
          ]
        }
      },
      test: {
        options: {
          port: 9001,
          base: [
            '.tmp',
            'test',
            '<%= yeoman.app %>'
          ]
        }
      },
      dist: {
        options: {
          base: '<%= yeoman.dist %>'
        }
      }
    },
    clean: {
      dist: {
        files: [{
          dot: true,
          src: [
            '.tmp',
            '<%= yeoman.dist %>/*',
            '!<%= yeoman.dist %>/.git*'
          ]
        }]
      },
      server: '.tmp'
    },
    jshint: {
      options: {
        jshintrc: '.jshintrc'
      },
      all: [
        'Gruntfile.js',
        '<%= yeoman.app %>/scripts/{,*/}*.js'
      ]
    },
    coffee: {
      options: {
        sourceMap: true,
        sourceRoot: ''
      },
      dist: {
        files: [{
          expand: true,
          cwd: '<%= yeoman.app %>/scripts',
          src: '{,*/}*.coffee',
          dest: '.tmp/scripts',
          ext: '.js'
        }]
      },
      test: {
        files: [{
          expand: true,
          cwd: 'test/spec',
          src: '{,*/}*.coffee',
          dest: '.tmp/spec',
          ext: '.js'
        }]
      }
    },
    compass: {
      options: {
        sassDir: '<%= yeoman.app %>/styles',
        cssDir: '.tmp/styles',
        generatedImagesDir: '.tmp/images/generated',
        imagesDir: '<%= yeoman.app %>/images',
        javascriptsDir: '<%= yeoman.app %>/scripts',
        fontsDir: '<%= yeoman.app %>/styles/fonts',
        importPath: '<%= yeoman.app %>/bower_components',
        httpImagesPath: '/images',
        httpGeneratedImagesPath: '/images/generated',
        httpFontsPath: '/styles/fonts',
        relativeAssets: false
      },
      dist: {},
      server: {
        options: {
          debugInfo: true
        }
      }
    },
    // not used since Uglify task does concat,
    // but still available if needed
    /*concat: {
      dist: {}
    },*/
    rev: {
      dist: {
        files: {
          src: [
            '<%= yeoman.dist %>/scripts/{,*/}*.js',
            '<%= yeoman.dist %>/styles/{,*/}*.css',
            '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
            '<%= yeoman.dist %>/styles/fonts/*'
          ]
        }
      }
    },
    useminPrepare: {
      html: '<%= yeoman.app %>/index.html',
      options: {
        dest: '<%= yeoman.dist %>'
      }
    },
    usemin: {
      html: ['<%= yeoman.dist %>/{,*/}*.html'],
      css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
      options: {
        dirs: ['<%= yeoman.dist %>']
      }
    },
    imagemin: {
      dist: {
        files: [{
          expand: true,
          cwd: '<%= yeoman.app %>/images',
          src: '{,*/}*.{png,jpg,jpeg}',
          dest: '<%= yeoman.dist %>/images'
        }]
      }
    },
    svgmin: {
      dist: {
        files: [{
          expand: true,
          cwd: '<%= yeoman.app %>/images',
          src: '{,*/}*.svg',
          dest: '<%= yeoman.dist %>/images'
        }]
      }
    },
    cssmin: {
      // By default, your `index.html` <!-- Usemin Block --> will take care of
      // minification. This option is pre-configured if you do not wish to use
      // Usemin blocks.
      // dist: {
      //   files: {
      //     '<%= yeoman.dist %>/styles/main.css': [
      //       '.tmp/styles/{,*/}*.css',
      //       '<%= yeoman.app %>/styles/{,*/}*.css'
      //     ]
      //   }
      // }
    },
    htmlmin: {
      dist: {
        options: {
          /*removeCommentsFromCDATA: true,
          // https://github.com/yeoman/grunt-usemin/issues/44
          //collapseWhitespace: true,
          collapseBooleanAttributes: true,
          removeAttributeQuotes: true,
          removeRedundantAttributes: true,
          useShortDoctype: true,
          removeEmptyAttributes: true,
          removeOptionalTags: true*/
        },
        files: [{
          expand: true,
          cwd: '<%= yeoman.app %>',
          src: ['*.html', 'views/*.html'],
          dest: '<%= yeoman.dist %>'
        }]
      }
    },
    // Put files not handled in other tasks here
    copy: {
      dist: {
        files: [{
          expand: true,
          dot: true,
          cwd: '<%= yeoman.app %>',
          dest: '<%= yeoman.dist %>',
          src: [
            '*.{ico,png,txt}',
            '.htaccess',
            'bower_components/**/*',
            'images/{,*/}*.{gif,webp}',
            'styles/fonts/*'
          ]
        }, {
          expand: true,
          cwd: '.tmp/images',
          dest: '<%= yeoman.dist %>/images',
          src: [
            'generated/*'
          ]
        }]
      },
      styles: {
        expand: true,
        cwd: '<%= yeoman.app %>/styles',
        dest: '.tmp/styles/',
        src: '{,*/}*.css'
      }
    },
    concurrent: {
      server: [
        'coffee:dist',
        'compass:server',
        'copy:styles'
      ],
      test: [
        'coffee',
        'compass',
        'copy:styles'
      ],
      dist: [
        'coffee',
        'compass:dist',
        'copy:styles',
        'imagemin',
        'svgmin',
        'htmlmin'
      ]
    },
    karma: {
      unit: {
        configFile: 'karma.conf.js',
        singleRun: true
      }
    },
    cdnify: {
      dist: {
        html: ['<%= yeoman.dist %>/*.html']
      }
    },
    ngmin: {
      dist: {
        files: [{
          expand: true,
          cwd: '<%= yeoman.dist %>/scripts',
          src: '*.js',
          dest: '<%= yeoman.dist %>/scripts'
        }]
      }
    },
    uglify: {
      dist: {
        files: {
          '<%= yeoman.dist %>/scripts/scripts.js': [
            '<%= yeoman.dist %>/scripts/scripts.js'
          ]
        }
      }
    }
  });

  grunt.registerTask('server', function (target) {
    if (target === 'dist') {
      return grunt.task.run(['build', 'connect:dist:keepalive']);
    }

    grunt.task.run([
      'clean:server',
      'concurrent:server',
      'autoprefixer',
      'connect:livereload',
      'watch'
    ]);
  });

  grunt.registerTask('test', [
    'clean:server',
    'concurrent:test',
    'autoprefixer',
    'connect:test',
    'karma'
  ]);

  grunt.registerTask('build', [
    'clean:dist',
    'useminPrepare',
    'concurrent:dist',
    'autoprefixer',
    'concat',
    'copy:dist',
    'cdnify',
    'ngmin',
    'cssmin',
    'uglify',
    'rev',
    'usemin'
  ]);

  grunt.registerTask('default', [
    'jshint',
    'test',
    'build'
  ]);
};

解决方案

@Dmitry Nikitenko is correct, you don't need Apache. You need to change your Gruntfile

The hostname option is only used to specify where livereload should connect to. This doesn't change the default url which is opened when you start Grunt. What you need is to specify a URL for open in your livereload options. For example:

  livereload: {
    options: {
      open: 'http://myapp.dev:9000',
      base: [
        '.tmp',
        '<%= yeoman.app %>'
      ]
    }

这篇关于Grunt服务器不使用虚拟主机名称为我的应用程序..vhost和httpd设置,但咕噜不使用它们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆