当前位置: 首页 > 知识库问答 >
问题:

React应用加载资源失败:服务器以404 GraphQL状态响应

宋腾
2023-03-14

我在我的服务器上部署反应应用程序,它在localhost上运行良好,但当我试图在我的服务器上使用它时,我得到了

加载资源失败:服务器响应状态为404(未找到)shayankh。me/graphql

我在服务器上的根位置是 /var/www/html/

'这是我的server.js

  .connect(process.env.MONGO_URI, { autoIndex: false })
  .then(() => console.log("DB Connected"))
  .catch((err) => console.error(err));

// Initializes application
const app = express();

const corsOtions = {
  origin: "https://shayankh.me",
  Credential: true,
};
app.use(cors(corsOtions));

// Set up JWT authentication middleware
app.use(async (req, res, next) => {
  const token = req.headers["authorization"];
  if (token !== "null") {
    try {
      const currentUser = await jwt.verify(token, process.env.SECRET);
      req.currentUser = currentUser;
    } catch (err) {
      console.error(err);
    }
  }
  next();
});

//Create GraphiQL Application
app.use("/graphiql", graphiqlExpress({ endpointURL: "/graphql" }));

// Connect Schemas with  GraphQL
app.use(
  "./graphql",
  bodyParser.json(),
  graphqlExpress(({ currentUser }) => ({
    schema,
    context: {
      CarDetails,
      User,
      currentUser,
    },
  }))
);

app.use(express.static('public'));
express.static(path_join(__dirname, '../client/build'))
app.all('/', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  next();
 });

app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname , "public", "index.html"))
});

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => {
  console.log(`Server listening on PORT ${PORT}`);
});

和索引。js

  uri: "/graphql",
  fetchOptions: {
    credentials: "include",
  },
  request: (operation) => {
    const token = localStorage.getItem("token");
    operation.setContext({
      headers: {
        authorization: token,
      },
    });
  },
  onError: ({ networkError }) => {
    if (networkError) {
      console.log("Network Error", networkError);
    }
  },
});

const Root = ({ refetch, session }) => (
  <Router>
    <Fragment>
      <Navbar session={session} />
      <Switch>
        <Route path="/" exact component={App} />
        <Route path="/signin" render={() => <Signin refetch={refetch} />} />
        <Route path="/signup" render={() => <Signup refetch={refetch} />} />
        <Route
          path="/carDetail/add"
          render={() => <AddCar session={session} />}
        />
        <Route path="/carDetails/:_id" component={CarDetailPage} />
        <Route path="/profile" render={() => <Profile session={session} />} />
        <Redirect to="/" />
      </Switch>
    </Fragment>
  </Router>
);

const RootWithSession = withSession(Root);

ReactDOM.render(
  <ApolloProvider client={client}>
    <RootWithSession />
  </ApolloProvider>,
  document.getElementById("root")
);

我不知道我的问题出在哪里。是否有可能是因为服务器的根位置,我的应用程序找不到GraphQL?我还在我的服务器上使用nginx。

共有1个答案

游安康
2023-03-14

你有。在api中,尝试以下代码

app.use(
  "/graphql",
  bodyParser.json(),
  graphqlExpress(({ currentUser }) => ({
    schema,
    context: {
      CarDetails,
      User,
      currentUser,
    },
  }))
);
 类似资料:
  • 我有一个带有ASP. NET Core Web API后端和Angulal-13前端的项目。 Web API有这样一个endpoint:https://localhost:5001/api/v1/admin/teachers 登录后,当我将生成的不记名令牌粘贴到POSTMAN时,它会给出这样的结果: 从Angular前端,我有这些代码。 角度 teacher.service: 教师组件: 我本以为

  • 服务器js公司 应用程序。js公司 注册处理程序代码 当我试图注册一个用户时,我遇到了错误400。加载资源失败:服务器响应状态为400(错误请求),我已附加我的注册表。js文件寄存器。js:26个职位https://warm-earth-96837.herokuapp.com/register400(错误请求)寄存器。onSubmitSignIn@寄存器。js:26 400错误请求错误是一个HTT

  • Im在使用@RequestMapping(method=RequestMethod.Post)注释向controller类添加方法时遇到了一个问题。问题是我什么时候添加这个方法并启动应用程序。应用程序无法加载资源(css、JS等)。在浏览器上,我得到:无法加载资源:服务器以405(方法不允许)的状态响应,在运行日志上,我得到以下消息:org.springframework.web.servlet.

  • 这是我第一次使用Sanity构建博客网站来练习使用React JS,在那里我应该从sanity.io.调用一个API,但是我的React网站无法从Sanity获取数据。在网页上应该从Sanity博客导入数据的区域实际上是一个空白屏幕。当我检查控制台时,我发现了这个错误: 这是我的网络负载 还有我的网络预览 这是本应显示信息的页面的代码 非常感谢你的帮助。谢谢

  • 我正在运行一个spring MVC应用程序,下面是我的项目结构。 在我的中,我尝试在header部分加载js。 但我在浏览器中发现了以下错误。 在我的spring文件中,我添加了 有人能指出我犯的错误吗?

  • 当我导航到authenticated url时,所有静态内容(甚至是href中的url)都与路由的url附加在一起,因为我得到的是该页面中的所有资源和href元素中的所有url的404 对于E.X 当我导航到MyApp/Reports/my静态内容已更改为 通常在html中看起来像 null null 我在这里错过了一些东西,甚至我已经enebled了MVC:Resources