2013-05-09 51 views
1

我正在使用grunt,connect和livereload在开发过程中提供一个测试页面(这是一个单一的平面HTML页面),我想在手机上测试该网站。通常,我使用网络共享执行此操作 - 使用我的Mac的本地URL(my-imac.local)导航到该网站。为什么我无法通过网络共享连接到连接投放的网站?

当我使用Python的SimpleHTTPServer服务页面时,这工作正常。当我使用grunt/connect时,它在那里是无法访问的(尽管它仍然可以在本地主机上访问)。如何配置连接以响应这些请求?

我gruntfile,以供参考:

var path = require('path'); 
var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet; 

var folderMount = function folderMount(connect, point) { 
    return connect.static(path.resolve(point)); 
}; 

module.exports = function(grunt) { 
    function registerRobustTasks(name, tasks) { 
    grunt.registerTask(name, function() { 
     // so we don't have stupid issues with grunt crashing 
     // every time a test fails... 
     grunt.option('force', true); 
     grunt.task.run(tasks); 
    }); 
    } 

    grunt.initConfig({ 
    pkg : grunt.file.readJSON('package.json'), 
    livereload : { 
     port : 48341 
    }, 
    connect : { 
     livereload : { 
     options : { 
      port : 48342, 
      middleware : function(connect, options) { 
      return [lrSnippet, folderMount(connect, '.')]; 
      } 
     } 
     } 
    }, 
    regarde : { 
     html : { 
     files : ['*.html'], 
     tasks : ['livereload'] 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-regarde'); 
    grunt.loadNpmTasks('grunt-contrib-livereload'); 
    grunt.loadNpmTasks('grunt-contrib-connect'); 

    registerRobustTasks('default', ['livereload-start', 'connect', 'regarde']); 
}; 

回答

1

原来这很简单:我需要连接服务器上的hostname : '*'选项。

0

做到这一点,最简单的方法是要在同一个局域网上的计算机与您的移动设备,然后进行测试您的手机上,使用的IP地址计算机和您选择让您的服务器侦听的端口。例如http://ipaddress:port

要验证grunt正在运行服务器,可以使用shell中的lsof程序。

$ lsof -i :port将在您的计算机上返回一个绑定到指定端口的程序。同样,如果你删除了端口号,你可以看到一个打开的文件列表(unix把所有的东西当作一个文件),有时候你也可以找到一些有趣的东西。

$ lsof -i