为什么我无法通过网络共享连接到连接服务的网站?

问题描述 投票:0回答:2

我在开发过程中使用 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']);
};
node.js gruntjs
2个回答
1
投票

事实证明这很简单:我需要连接服务器上的

hostname : '*'
选项。


0
投票

最简单的方法是使用移动设备与计算机位于同一 LAN 上,然后在手机上进行测试,使用计算机的 IP 地址和您选择让服务器侦听的端口。例如

http://ipaddress:port

要验证 grunt 是否正在运行服务器,您可以使用 shell 中的

lsof
程序。

$ lsof -i :port
将返回您计算机上绑定到指定端口的程序。

同样,如果你删除端口号,你可以看到打开文件的列表(unix 将所有内容都视为文件),有时你也可以找到一些有趣的东西。

$ lsof -i

© www.soinside.com 2019 - 2024. All rights reserved.