Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Web包开发服务器响应内容安全策略错误_Reactjs_Webpack_Webpack Dev Server_Content Security Policy - Fatal编程技术网

Reactjs Web包开发服务器响应内容安全策略错误

Reactjs Web包开发服务器响应内容安全策略错误,reactjs,webpack,webpack-dev-server,content-security-policy,Reactjs,Webpack,Webpack Dev Server,Content Security Policy,我的单页应用程序运行在webpack dev服务器上。我可以在localhost:8080上加载和重新加载我的进入路径,并且每次都可以运行。但是,我只能通过应用程序内的链接加载localhost:8080/accounts/login,即每当我从浏览器刷新按钮重新加载localhost:8080/accounts/login Cannot GET /accounts/login/ 作为服务器响应,在控制台上 内容安全策略:页面设置阻止加载 自我资源(“默认src”)。资料来源: ;(函数ins

我的单页应用程序运行在webpack dev服务器上。我可以在
localhost:8080
上加载和重新加载我的进入路径,并且每次都可以运行。但是,我只能通过应用程序内的链接加载
localhost:8080/accounts/login
,即每当我从浏览器刷新按钮重新加载
localhost:8080/accounts/login

Cannot GET /accounts/login/
作为服务器响应,在控制台上

内容安全策略:页面设置阻止加载 自我资源(“默认src”)。资料来源: ;(函数installGlobalHook(窗口){…)

这是我在单页应用程序index.html上的CSP标题

<meta http-equiv="Content-Security-Policy"
  content="default-src * 'self' 'unsafe-inline' 'unsafe-eval'">


我也没有在我的
webpack.config.json
上使用任何
devtool
。我缺少什么。

如果您在项目中使用webpack,请在您的webpack配置文件中添加
output.publicPath='/'
devServer.historyApiFallback=true


更多信息:

我也有类似的问题。必须从
webpack.config.js
中的
devServer
配置中删除
contentBase

这是我的
webpack.config.js

var path = require("path");

module.exports = {
  devtool: 'inline-source-map',
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    publicPath: "/assets/",
    filename: "bundle.js"
  },
  devServer: {
    port: 9002
  },
  module: {
    rules: [
      { test: /\.js$/, use: 'babel-loader' }
    ]
  }
};

我花了几个小时来解决这个问题。您必须添加一个简单的代码。只需按照下面的说明操作即可。如果您在从特定url浏览到另一个url时遇到问题,您也可以解决此问题。如果您希望从webpack配置文件进行配置,请编写下面的代码

devServer: {
    historyApiFallback: true
}
如果希望通过cli命令运行,请使用下面的代码

"start": "webpack-dev-server --history-api-fallback"

它对我起了作用。我不需要做任何其他事情来修复这个问题,比如meta标记或其他东西。

如果您使用Rails和Webpacker并出现此错误,请注意初始值设定项
config/initializers/content\u security\u policy.rb
Rails.env.development
。更改
:https
to
:http
在那一行为我解决了这个错误。(请记住,就CSP而言,localhost与127.0.0.1不同。)

文档似乎有一个内容安全策略标题,该标题指定了一个更严格的策略,该策略具有
默认srchttp://localhost:8080
。如果指定了多个CSP策略,则越严格的策略始终获胜。您可以覆盖在一个位置(例如HTTP标头)指定的严格CSP策略在其他地方指定了更自由的CSP策略(例如,
meta
element)我的问题与你的问题完全相同。从SideShowBarker的评论中,我仍然不知道如何解决这个问题。你可以给我一个有用的链接,或者更详细地解释一下你的解决方案,为我指出一些方向吗?我想你错误地引用了已经回答的另一个问题的答案,它是:
devServer:{historyApiFallback:true,contentBase:'./'}