每当我使用 `npm start` 启动我的应用程序时,它会将我带到 Ruby on Rails 主屏幕,而不是我的 index.html 文件

Posted

技术标签:

【中文标题】每当我使用 `npm start` 启动我的应用程序时,它会将我带到 Ruby on Rails 主屏幕,而不是我的 index.html 文件【英文标题】:Whenever I start my app using `npm start` it brings me to the Ruby on Rails Homescreen instead of my index.html file 【发布时间】:2021-12-16 18:16:48 【问题描述】:

我是软件开发的新手,但我知道如何很好地使用React/Redux,以及Ruby-On-Rails。我试图让一个由 Rails 后端驱动的 React 前端。我从概念上理解Node.js 的工作原理,但不完全是细节。在我提交任何迁移之前,我的应用程序在开始阶段运行良好,因此在测试期间我从未运行过rails s. 现在,每当我运行时,只要我运行npm start,它就会将我带到 rails 主页,并且在任何地方都没有我创建的代码。我以前创建过应用程序,从未遇到过这个问题,我知道问题可能出在 src 目录中的packagae.json 文件中,但除此之外我不知道该怎么做,也没有错误甚至谷歌。我什至不知道我应该显示什么文件或代码......无论如何,这是我的 packagae.json 文件作为我的index.js 文件

package.json


  "name": "legend_of_cliches",
  "version": "0.1.0",
  "private": true,
  "dependencies": 
    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-redux": "^7.2.4",
    "react-scripts": "4.0.3",
    "redux": "^4.1.1",
    "redux-thunk": "^2.3.0",
    "web-vitals": "^1.0.1"
  ,
  "scripts": 
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  ,
  "eslintConfig": 
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  ,
  "browserslist": 
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  


index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import  Provider  from 'react-redux'
import  createStore, applyMiddleware, compose  from 'redux';
import thunk from 'redux-thunk';
import masterReducer from './reducers/master_reducer';

//  Sets up Store and Debuggers
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
const store = createStore(masterReducer, composeEnhancers(applyMiddleware(thunk)))


ReactDOM.render(
  <Provider store=store>
    <App />
  </Provider>,
  document.getElementById('root')
);


【问题讨论】:

你是在 3000 端口上运行 rails 吗,你访问 localhost:3000 时看到 rails 页面了吗? 就是这样!!!谢谢! 【参考方案1】:

确保您有:

    config/routes.rb 中的根路由 具有由根路由引用的操作的控制器 控制器文件夹中的视图文件(erb,haml)

如果所有这些都是预设的,rails 将为您渲染视图文件并显示它。你也可以在那里加载你的js。

【讨论】:

以上是关于每当我使用 `npm start` 启动我的应用程序时,它会将我带到 Ruby on Rails 主屏幕,而不是我的 index.html 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何为我的App Engine应用设置自定义npm启动脚本?

尝试使用“npm start”运行此应用程序,但它不起作用。我如何使这个应用程序工作?

尝试使用 npm start 命令启动服务器时出现异常

每当应用程序被杀死时服务停止

是否可以在 Express 应用程序中使用一个 npm 脚本启动 nodemon 和浏览器同步?

使用 nodejs/npm start 在哪里查看 console.log 输出?