質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

1590閲覧

Reactで任意のIPから起動すると、エラーが表示される

FKM

総合スコア3633

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/01/08 11:56

どうしても解決しなかったので質問します。

このページを参考にReactを勉強していたところ、このページだとReact-routerを起動の際、IPアドレスをlocalhostにしているのですが、自分の環境だとlocalhostにできないので、VirtualBox内の仮想環境(centOS7)で起動しようとして、困った問題に直面しました。

起きていること

任意のIPアドレスで起動しようとして、この個人サイトなどを参考に、webpack.config.jsに以下の設定を加えてみました。

js

1var debug = process.env.NODE_ENV !== "production"; 2var webpack = require('webpack'); 3var path = require('path'); 4var fallback = require('express-history-api-fallback'); 5module.exports = { 6 context: path.join(__dirname, "src"), 7 entry: "./js/client.js", 8 module: { 9 rules: [{ 10 test: /.jsx?$/, 11 exclude: /(node_modules|bower_components)/, 12 use: [{ 13 loader: 'babel-loader', 14 options: { 15 presets: ['@babel/preset-react', '@babel/preset-env'] 16 } 17 }] 18 }] 19 }, 20 devServer: { 21 disableHostCheck: true, 22 host: '0.0.0.0', //任意のIPで起動する 23 historyApiFallback: true, 24 hot: true, 25 contentBase: './dist', 26 watchOptions:{ 27 ignored: /node_modules/ 28 } 29 }, 30 output: { 31 path: __dirname + "/src/", 32 filename: "client.min.js" 33 }, 34 plugins: debug ? [] : [ 35 new webpack.optimize.OccurrenceOrderPlugin(), 36 new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }), 37 ] 38};

この状態で

#npm start

を実行すると、サーバはうまく起動されます。しかし、肝心のブラウザにアクセスしてみると

Cannot GET /react-tutorial/src/index.html

というメッセージがブラウザに表示されるだけになり、メッセージ通り、GETのパラメータも404となっています。また、コンソールには

Refused to load the image 'http://192.168.11.xx:8080/favicon.ico' because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.

と表示されているのですが、関係があるのかはよくわかりません。

#やってみたこと(いずれも解決に至らず)

  • <base href="/"/>をheadタグに入れてみた。

参考:react-routerでURLパラメータを指定した際、URL直打ちだと404になります

  • devServerの設定にhistoryApiFallback: trueを設定してみた。

また、コンソールのエラーメッセージ対策として

html

1<meta http-equiv="Content-Security-Policy" content="default-src 'none' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *;**script-src 'self' http://onlineerp.solution.quebec 'unsafe-inline' 'unsafe-eval';** "> 2

を追加してみたりしましたが、全く成果がありません。ほかにも国内、海外のサイトを色々と巡回してみたのですが、ギブアップに近い状態です。

解決法をご存知の方、ご教授いただけると大変助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決です。

原因は

192.168.11.xx:8080/react-tutorial/src/index.html

としていたことで、ファイルのパスを書いてしまったことで、セキュリティ的なエラーが生じていたようです。なので

192.168.11.xx:8080

と、ルートだけ指定したら起動し、リアクティブになりました。

また、webpack.config.jsに記述する追記は内部サーバからなら

devServer:{ host: 0.0.0.0 }

だけで問題ないようですね。また、起動のコマンドも

npm start

だけで大丈夫なようです。

投稿2020/01/09 01:27

FKM

総合スコア3633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問