ক্লাউড 9.io এ একটি ওয়েবপ্যাক ডেভ সার্ভারে আমার প্রতিক্রিয়া অ্যাপটি চালানোর সময় আমি একটি "অবৈধ হোস্ট শিরোলেখ" বার্তা পাচ্ছি


176

আমি একটি পরিবেশ হিসাবে ব্যবহার করছি, একটি Cloud9.io উবুন্টু ভিএম অনলাইন আইডিই এবং আমি এই ত্রুটিটির সমস্যা সমাধানের মাধ্যমে কেবল ওয়েবপ্যাক ডেভ সার্ভার দিয়ে অ্যাপ্লিকেশন চালাতে হ্রাস পেয়েছি।

আমি এটি দিয়ে চালু:

webpack-dev-server -d --watch --history-api-fallback --host $IP --port $PORT

$ আইপি একটি পরিবর্তনশীল যা হোস্টের ঠিকানা রয়েছে $ পোর্টটির পোর্ট নম্বর রয়েছে।

ক্লাউড 9 এ কোনও অ্যাপ্লিকেশন স্থাপন করার সময় আমাকে এই ভারগুলি ব্যবহার করার জন্য নির্দেশ দেওয়া হয়েছে, কারণ তাদের ডিফল্ট আইপি এবং পোর্ট তথ্য রয়েছে।

সার্ভারটি বুট হয়ে কোডটি সংকলন করে, কোনও সমস্যা নেই, যদিও এটি আমাকে সূচী ফাইলটি দেখায় না । পাঠ্য হিসাবে কেবল "অবৈধ হোস্ট শিরোলেখ" সহ একটি ফাঁকা স্ক্রিন।

এটি অনুরোধ:

GET / HTTP/1.1
Host: store-client-nestroia1.c9users.io
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Accept: 
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
DNT: 1
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8

এটি আমার প্যাকেজ.জসন:

{
  "name": "workspace",
  "version": "0.0.0",
  "scripts": {
    "dev": "webpack -d --watch",
    "server": "webpack-dev-server -d --watch --history-api-fallback --host $IP --port $PORT",
    "build": "webpack --config webpack.config.js"
  },
  "author": "Artur Vieira",
  "license": "ISC",
  "dependencies": {
    "babel-core": "^6.18.2",
    "babel-loader": "^6.2.8",
    "babel-preset-es2015": "^6.18.0",
    "babel-preset-react": "^6.16.0",
    "babel-preset-stage-0": "^6.24.1",
    "file-loader": "^0.11.1",
    "node-fetch": "^1.6.3",
    "react": "^15.5.4",
    "react-bootstrap": "^0.30.9",
    "react-dom": "^15.5.4",
    "react-router": "^4.1.1",
    "react-router-dom": "^4.1.1",
    "url-loader": "^0.5.8",
    "webpack": "^2.4.1",
    "webpack-dev-server": "^2.4.4",
    "whatwg-fetch": "^2.0.3"
  }
}

এটি ওয়েবপ্যাক.কমফিগ.জেএস:

const path = require('path');

module.exports = {

  entry: ['whatwg-fetch', "./app/_app.jsx"], // string | object | array
  // Here the application starts executing
  // and webpack starts bundling
  output: {
    // options related to how webpack emits results

    path: path.resolve(__dirname, "./public"), // string
    // the target directory for all output files
    // must be an absolute path (use the Node.js path module)

    filename: "bundle.js", // string
    // the filename template for entry chunks

    publicPath: "/public/", // string
    // the url to the output directory resolved relative to the HTML page
  },

  module: {
    // configuration regarding modules

    rules: [
      // rules for modules (configure loaders, parser options, etc.)
      {
        test: /\.jsx?$/,
        include: [
          path.resolve(__dirname, "./app")
        ],
        exclude: [
          path.resolve(__dirname, "./node_modules")
        ],
        loader: "babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0",
        // the loader which should be applied, it'll be resolved relative to the context
        // -loader suffix is no longer optional in webpack2 for clarity reasons
        // see webpack 1 upgrade guide
      },
      {
        test: /\.css$/,
        use: [ 'style-loader', 'css-loader' ]
      },
      {
        test: /\.(png|jpg|jpeg|gif|svg|eot|ttf|woff|woff2)$/,
        loader: 'url-loader',
        options: {
          limit: 10000
        }
      }
    ]
  },

  devServer: {
    compress: true
  }
}

ওয়েবপ্যাক ডেভ সার্ভারটি আমার হোস্ট সেটআপের কারণে এটি ফিরিয়ে দিচ্ছে। ওয়েবপ্যাক-ডেভ-সার্ভার / lib / Server.js লাইন 60. https://github.com/webpack/webpack-dev-server থেকে

এই প্রশ্নটি সঠিকভাবে পাস করার জন্য আমি কীভাবে সেটআপ করব তা আমার প্রশ্ন। কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে।


দেখে মনে হচ্ছে সমস্যাটি মন্তব্য করার সুযোগের বাইরে।
এলিমেস্টার

সমস্যাটি কীভাবে হচ্ছে তা আমি বুঝতে পারি না। আপনি আমার ডান দিক নির্দেশ পারে?
মধ্যে Artur ভিয়েরা

ভাল এটি আমার ক্ষেত্রে শীর্ষ উত্তর কাজ করে।
মিঃমিসিজ

উত্তর:


311

সমস্যাটি দেখা দেয় কারণ webpack-dev-server২.৪.৪ একটি হোস্ট চেক যুক্ত করে। আপনি এটি আপনার ওয়েবপ্যাক কনফিগারেশনে যুক্ত করে অক্ষম করতে পারেন:

 devServer: {
    compress: true,
    disableHostCheck: true,   // That solved it

 }      

সম্পাদনা: দয়া করে মনে রাখবেন, এই ফিক্সটি নিরাপত্তাহীন।

সুরক্ষিত সমাধানের জন্য দয়া করে নীচের উত্তরটি দেখুন: https://stackoverflow.com/a/43621275/5425585


13
এটি একটি সুরক্ষা সমস্যা। অনুমোদিত হোস্টনাম নির্দিষ্ট করার পরিবর্তে সর্বজনীন বিকল্পটি ব্যবহার করুন। আরও তথ্যের জন্য মিডিয়াম . com/webpack/… দেখুন ।
সিস্টেমপারাডক্স

5
একা জনসাধারণের বিকল্প আমার পক্ষে কাজ করে নি ... অক্ষম হোস্টচেকই কেবল এটির সমাধান করে: \
ডেভিডকোমার

@ ডেভিডকোমর আমার জন্য একই কেবলমাত্র কাজটি হ'ল চ্যালেস্ট অক্ষম ...
irl_irl

6
আপনি যদি স্থানীয় দেব ছাড়া অন্য কোনও কিছুর জন্য ওয়েবপ্যাক ডেভ সার্ভার ব্যবহার করেন তবে এটি একটি সুরক্ষা সমস্যা।
AlienWebguy

এটি আমার পক্ষেও কাজ করেছিল। আমার কেসটি ছিল আমি 192.168.0.106.xip.io তে পরিবেশিত, বিটনামি মাল্টিসাইট ওয়ার্পড্রেস ইনস্টল ব্যবহার করছিলাম। কি বিজোড় তা হল, আমি আমার পুরানো অ্যাপাচি লিনাক্স ইনস্টলটিতে এই "ফিক্স" না করেই কাজ করতে সক্ষম হয়েছি। যতক্ষণ না আমি বিটনামি প্যাকেজটিতে স্যুইচ করেছি যেটি এই সমস্যাটি পপ আপ করেছে।
হাইব্রিড ওয়েব দেব

103

আমি খুঁজে পেয়েছি, যে আমার সেট করা প্রয়োজন public , আমার অনুরোধের হোস্ট মান হিসাবে আমার ডেভ সার্ভারের সম্পত্তি । এটি হ'ল এটি বাহ্যিক ঠিকানায় প্রদর্শিত হবে।

সুতরাং আমার ওয়েবপ্যাক.কমফিগ.জেএস এ এটির দরকার ছিল

devServer: {
  compress: true,
  public: 'store-client-nestroia1.c9users.io' // That solved it
}

আর একটি সমাধান সিএলআইতে এটি ব্যবহার করছে:

ওয়েবপ্যাক-ডেভ-সার্ভার - প্রজাতন্ত্র $ C9_HOSTNAME <- ক্লাউড 9 বাহ্যিক আইপি-র জন্য var


1
আজ এটির মুখোমুখি! পোস্ট করার জন্য আপনাকে ধন্যবাদ!
জননি কিউ

5
এছাড়াও আজ এই মধ্যে দৌড়ে। দেখে মনে হচ্ছে webpack-dev-serverসম্প্রতি এটির জন্য সঠিক হোস্ট শিরোনামের প্রয়োজন change আরও তথ্যের জন্য github.com/webpack/webpack-dev-server/releases/tag/v2.4.3 দেখুন ।
কাইত্রনো

2
পরিবর্তনটি ওয়েবপ্যাক-ডেভ-সার্ভারকে 1.16.4-কেও প্রভাবিত করে। আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন: माध्यम . com / webpack/…
টাইলার কলিয়ার

1
এটি আমার Invalid Host headerপক্ষেও কাজ করেছিল যখন আমি একটি ভু ক্লাইপ প্রকল্পের ত্রুটির মধ্যে পড়েছিলাম ।
টিমি ভন হেইস

43

এটিই আমার পক্ষে কাজ করেছে:

আপনার ওয়েবপ্যাক.কনফিগ.জেজে ডেভ সার্ভারের আওতায় অনুমোদিত হোস্টগুলি যুক্ত করুন:

devServer: {
  compress: true,
  inline: true,
  port: '8080',
  allowedHosts: [
      '.amazonaws.com'
  ]
},

আমার - হোস্ট বা - প্রজাতন্ত্রের প্যারামগুলি ব্যবহার করার দরকার নেই।


আপনার যদি হটমোডুলারেলোড থাকে, তবে পরম মনে publicহয় যে এটি ইউআরএলকে লক্ষ্য হিসাবে ব্যবহার করে সেট করে (যদি পৃষ্ঠাটি কীভাবে পরিবেশন করা হয় তা থেকে এটি যদি অনুমান করতে না পারে যা আমার পক্ষে এটি করতে পারে না)।
টম সালিবা

15

ওয়েবপ্যাক-ডেভ-সার্ভার ব্যবহার করার সময় আপনার ওয়েবপ্যাক কনফিগারেশন ফাইলে এই কনফিগারেশনটি যুক্ত করুন (আপনি এখনও হোস্টটিকে 0.0.0.0 হিসাবে নির্দিষ্ট করতে পারেন)।

devServer: {
    disableHostCheck: true,
    host: '0.0.0.0',
    port: 3000
}

2
এই নতুন Vue.js Vue-CLI কনফিগ জন্য কাজ করে github.com/vuejs/vue-cli/blob/dev/docs/config.md
CenterOrbit

10

আরও সুরক্ষিত বিকল্পটি হ'ল এইভাবে আপনার ওয়েবপ্যাক কনফিগারেশনে অনুমোদিত হোস্টগুলি যুক্ত করা:

module.exports = {
devServer: {
 allowedHosts: [
  'host.com',
  'subdomain.host.com',
  'subdomain2.host.com',
  'host2.com'
   ]
  }
};

অ্যারেতে সমস্ত অনুমোদিত হোস্ট রয়েছে, আপনি সাবডমিনিয়ানগুলিও নির্দিষ্ট করতে পারবেন। আরও এখানে দেখুন


5

আপনি যদি এখনও সিআরএ থেকে বের না হয়ে থাকেন তবে আপনি সহজেই আপনার ওয়েবপ্যাক কনফিগারেশনটি পরিবর্তন করতে পারবেন না। কনফিগারেশন ফাইলটি লুকানো আছে node_modules/react_scripts/config/webpackDevServer.config.js। আপনি এই কনফিগারেশন পরিবর্তন করতে নিরুৎসাহিত করা হয়।

পরিবর্তে, আপনি হোস্ট চেকটি অক্ষম DANGEROUSLY_DISABLE_HOST_CHECKকরতে পরিবেশের পরিবর্তনশীল সেট করতে পারেন true:

DANGEROUSLY_DISABLE_HOST_CHECK=true yarn start  
# or the equivalent npm command

1
ধন্যবাদ, লুকাশ কালবার্টড, সেরা উত্তর। আমি ব্যবহার করেছি: রফতানি DANGEROUSLY_DISABLE_HOST_CHECK = সত্য; এনপিএম শুরু
মার্ক কাহন

3

ওয়েবপ্যাক কনফিগারেশন ফাইল সম্পাদনা করার পরিবর্তে, হোস্ট চেকটি অক্ষম করার সহজ উপায় হ'ল .envআপনার রুট ফোল্ডারে একটি ফাইল যুক্ত করে এবং এটি রেখে দেওয়া:

DANGEROUSLY_DISABLE_HOST_CHECK=true

চলক নামটি যেমন বোঝায়, এটিকে অক্ষম করা অনিরাপদ এবং কেবলমাত্র পরিবেশ পরিবেশে এটি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।


2

আপনি যদি সি 9 তে ক্রিয়েট-রিএ্যাক্ট-অ্যাপ ব্যবহার করেন তবে শুরু করতে এই কমান্ডটি চালান

npm run start --public $C9_HOSTNAME

এবং আপনার হোস্টনামটি যা আছে তা থেকে অ্যাপ্লিকেশনটি অ্যাক্সেস করুন (যেমন $C_HOSTNAMEহোস্টনামটি পেতে টার্মিনালে টাইপ করুন )


0

আপনি যদি webpack-dev-serverকোনও ধারক চালাচ্ছেন এবং এর ধারক নামের মাধ্যমে এটিতে অনুরোধগুলি প্রেরণ করছেন তবে আপনি এই ত্রুটি পাবেন। একই নেটওয়ার্কের অন্যান্য পাত্রে থেকে অনুরোধগুলি অনুমোদনের জন্য, --publicবিকল্পটি ব্যবহার করে কেবল ধারকটির নাম (বা ধারকটি সমাধান করতে যে কোনও নামই ব্যবহৃত হয়) সরবরাহ করুন । পুরোপুরি সুরক্ষা চেক নিষ্ক্রিয় করার চেয়ে এটি আরও ভাল।

আমার ক্ষেত্রে, আমি ডকার-কমপোজযুক্ত webpack-dev-serverএকটি assetsধারকটিতে চালাচ্ছিলাম । আমি স্টার্ট কমান্ড এটিতে পরিবর্তন করেছি:

webpack-dev-server --mode development --host 0.0.0.0 --public assets

এবং অন্যান্য ধারক এখন মাধ্যমে অনুরোধ করতে সক্ষম ছিল http://assets:5000

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.