javascript - vue-cli : dist/js/is not found in website source

标签 javascript node.js vue.js webpack

问题:我正在用 vue-CLI 建立一个网站。当我使用 npm run serve 运行开发服务器时一切都以应有的方式显示。运行后npm run build一个 /dist正在创建文件夹。然后在运行 npm start 时并在网站源中启动 localhost 服务器,而不是 dist/js 中的所有 js 文件仅限 app.d574a975.js正在显示(但是所有其他 js 文件都存在于本地 /dist 目录中),因此,当访问 localhost:5000 时(我的端口是 5000 )我得到 localhost/:1 GET http://localhost:5000/js/chunk-vendors.3fcb4836.js/ net::ERR_ABORTED 404 (Not Found)错误,页面变为空白。有没有办法来解决这个问题?我对网络开发很陌生,所以我将不胜感激。
可能很重要:

  • 我已经尝试在本地主机上部署它并且效果很好。但是,然后我尝试添加中间件来处理 404错误,从那时起,该应用程序一直行为不端并在控制台中打印出上述错误。
  • 我尝试通过使用 vue create 重新创建 vue 应用程序从头开始重建应用程序。 ,重新安装相同的依赖项并从原始项目中复制粘贴代码。由于某些未知原因,它工作得很好,dist/js里面有所有文件。

  • 项目文件夹架构:
    Project folder architecture
    server.js :
    const express = require('express')
    const mongoose = require('mongoose')
    const morgan = require('morgan')
    const path = require('path')
    const rateLimit = require('express-rate-limit')
    
    let app = express();
    const port = 5000;
    
    const limiter = rateLimit({
        windowMs: 10 * 60 * 1000,
        max: 300 
    })
    app.use(limiter)
    app.set('trust proxy', 1)
    
    app.use(express.json())
    app.use(express.urlencoded({extended: false}))
    app.use(morgan('dev'))
    app.use('/api/hometasks', require('./api/hometask'))
    app.use('/api/auth', require('./api/auth'))
    app.use('/api/groups', require('./api/groups'))
    app.use('/', express.static(path.join(__dirname, '../dist/')))
    app.listen(port)
    
    main.js
    import { createApp } from 'vue/dist/vue.esm-bundler';
    import { createRouter, createWebHistory } from 'vue-router'
    import App from './App.vue'
    import Main from './components/corepages/main.vue'
    import PageNotFound from './components/infopages/pageNotFound.vue'
    
    const router = createRouter({
        history: createWebHistory(),
        routes: [
            {path: '/', component: Main},
            {path: '/:pathMatch(.*)*', component: PageNotFound}
        ]
    })
    
    const app = createApp(App)
    app.use(router)
    app.mount('#app')
    

    最佳答案

    2022/03 vue3 cli 默认设置有这个问题:如果你运行“npm run build”,你会得到一个不错的/dest 文件夹,其中包含 index.html 和正确的子文件夹。但是 js 源链接使用绝对路径/,所以这仅在网络服务器的根目录中有效。
    https://cli.vuejs.org/config/#publicpath
    “默认情况下,Vue CLI 假定您的应用程序将部署在域的根目录,例如 https://www.my-app.com/ 。如果您的应用程序部署在子路径中,则需要使用此选项指定该子路径。例如,如果您的应用部署在 https://www.foobar.com/my-app/,请将 publicPath 设置为 '/my-app/'。"

    关于javascript - vue-cli : dist/js/is not found in website source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70332308/

    相关文章:

    javascript - promise 链不起作用。为什么?

    php - 如何使用 <map> 与鼠标悬停自动链接到另一个页面

    node.js - npm start 不打开浏览器选项卡

    apache - Node.js 事件循环 - nginx/apache

    javascript - 计算最小值和最大值时得到空数组

    javascript - Facebook 评论插件 - 也在 Facebook 上发布

    javascript - 仅在满足特定条件时才使用 $in 运算符 - Mongoose

    azure - 根据 Auth0 在本地对 Vue 2 Azure 静态 Web 应用程序进行身份验证

    vue.js - 当它是单个元素时保持 URL 中的数组一致性

    javascript - 意外的 token 导入 - jsfiddle