gpt4 book ai didi

node.js - 未找到 Angular 运行时-es2015.js

转载 作者:行者123 更新时间:2023-12-03 12:14:12 28 4
gpt4 key购买 nike

当我运行“ng build”时,我注意到它创建了一个这样的文件夹结构。

/dist/项目名称/

然后它生成 projectname 文件夹中的所有文件。

当我运行我的 Angular 应用程序时,索引文件中的第一个脚本出现 404(未找到)错误。

<body>
<app-root></app-root>
<script src="runtime-es2015.js" type="module"></script>
<script src="runtime-es5.js" nomodule defer></script>
<script src="polyfills-es5.js" nomodule defer></script>
<script src="polyfills-es2015.js" type="module"></script>
<script src="styles-es2015.js" type="module"></script>
<script src="styles-es5.js" nomodule defer></script>
<script src="vendor-es2015.js" type="module"></script>
<script src="vendor-es5.js" nomodule defer></script>
<script src="main-es2015.js" type="module"></script>
<script src="main-es5.js" nomodule defer></script>
</body>
  • 他们不应该有 src="projectname/runtime-es2015.js"吗?
  • 如何使用项目名称文件夹构建不构建?
  • 我可以在我的代码中做些什么来引用 projectname 文件夹,因为它没有假设它?

  • 另外这里是我的 server.js 文件,因为我觉得这是问题的来源。
    const express = require('express');
    const bodyParser = require('body-parser');
    const path = require('path');
    const http = require('http');
    const app = express();

    const api = require('./server/routes/api');

    // Parsers
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));

    app.use(express.static(path.join(__dirname, 'dist')));

    app.use('/api', api);

    app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, 'dist/clinic-manager/index.html'));
    });

    // Set Port
    const port = process.env.PORT || '3000';
    app.set('port', port);

    const server = http.createServer(app);

    server.listen(port, () => console.log(`Running on localhost:${port}`));

    预先感谢您提供的任何帮助!

    最佳答案

    在您的 package.json 中,您可以在构建“dist”时设置 base-href:

    {
    "name": "projectname",
    "version": "0.0.0",
    "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --base-href /projectname/",
    ... snip...
    }

    这将在所有引用前添加“/projectname/”:
    <body>
    <app-root></app-root>
    <script src="/projectname/runtime-es2015.js" type="module"></script>
    <script src="/projectname/runtime-es5.js" nomodule defer></script>
    <script src="/projectname/polyfills-es5.js" nomodule defer></script>
    <script src="/projectname/polyfills-es2015.js" type="module"></script>
    <script src="/projectname/styles-es2015.js" type="module"></script>
    <script src="/projectname/styles-es5.js" nomodule defer></script>
    <script src="/projectname/vendor-es2015.js" type="module"></script>
    <script src="/projectname/vendor-es5.js" nomodule defer></script>
    <script src="/projectname/main-es2015.js" type="module"></script>
    <script src="/projectname/main-es5.js" nomodule defer></script>
    </body>

    注意:我也必须这样做,因为我将客户端 UI( Angular )“dist”文件夹部署为 Spring 应用程序 WAR 文件 [部署在 tomcat 上] 的一部分,并且我们总是定义一个上下文根(例如: https://myserver.ext/myApp) .所以我的应用程序中有一个 gradle bruild 脚本,它调用 NpmTask“run build”,我的 package.json 定义了上下文根(ng build --base-href/myapp),如上定义。这样,我可以使用快速的“ng serve”对 UI 进行编码,我还可以在将新版本部署到 tomcat 时构建 dist 并在“ng build”中定义上下文根。

    关于node.js - 未找到 Angular 运行时-es2015.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58509555/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com