Jhipster 如何在使用Vue.js蓝图时设置基本url?

Jhipster 如何在使用Vue.js蓝图时设置基本url?,jhipster,Jhipster,我希望我的应用程序在/myapp而不是/上运行,但我似乎无法实现这一点 我希望在将应用程序作为jar运行时,不单独运行客户机,以及从IntelliJ将其作为Spring Boot应用程序运行时(同样,不单独运行客户机),都能实现这一点 我已经用JHipster生成了这个应用程序,它运行得很好/ 然后我做了以下工作: in application.yml 在webapp/app/router/index.ts中 现在,当运行应用程序并调用localhost:8080/myapp时,我得到一个错误页

我希望我的应用程序在/myapp而不是/上运行,但我似乎无法实现这一点

我希望在将应用程序作为jar运行时,不单独运行客户机,以及从IntelliJ将其作为Spring Boot应用程序运行时(同样,不单独运行客户机),都能实现这一点

我已经用JHipster生成了这个应用程序,它运行得很好/

然后我做了以下工作:

  • in application.yml
  • 在webapp/app/router/index.ts中
  • 现在,当运行应用程序并调用localhost:8080/myapp时,我得到一个错误页面,告诉我“发生了一个错误:-”(),我可以看到它正在尝试调用

    结果都是404

    我错过了什么

    多谢各位

    编辑

    html网页包插件版本为3.2.0

    我尝试在webpack/webpack.common.js中进行更改:

        new HtmlWebpackPlugin({
          template: './src/main/webapp/index.html',
          chunks: ['vendors', 'main', 'global'],
          chunksSortMode: 'manual',
          inject: true
        }),
        new BaseHrefWebpackPlugin({ baseHref: '/myapp/' }),
    
    但即使试了试也没用

    npm run webpack:build
    
    只有在我手动将index.html修改为

    <base href="/myapp/" />
    
    
    
    下一个问题是:这能成为动态的吗

    例如,在Docker容器中运行应用程序时,我可以将路径作为环境参数传递

    我可以为春天做,但也可以为Vue做吗


    谢谢。

    您需要在index.html中配置
    。您可以通过在
    webpack.common.js
    webpack.prod.js
    ()中为
    HtmlWebpackPlugin
    设置
    基本
    配置选项来实现。默认设置为

    new HtmlWebpackPlugin({
      base: '/',
    
    改为:

    new HtmlWebpackPlugin({
      base: '/myapp/',
    
    这是在中添加到蓝图的


    如果要在BrowserSync设置中使用
    dev
    中的上下文路径,请使用以下配置
    webpack dev server

    • publicPath:'/myapp/,
    • contentBasePublicPath:'/myapp/,
    • .map(path=>'/myapp'+path)
      添加到
      devServer.proxy[0].context的末尾(代理的路径列表,如
      /api
      )。可能是执行此部分的更好方法,但找不到它

    由于基本href在客户端构建过程中被替换,因此无法通过环境变量对Docker容器进行开箱即用的配置。这里一个可能的解决方案是向添加一个步骤,用上下文路径替换
    /app/resources/static/index.html
    中的基本href(例如,如果设置了
    SERVER\u SERVLET\u CONTEXT\u PATH



    注意:如果您使用的是
    jhipster vuejs
    版本的
    html网页包插件
    v3.x,则需要将
    html网页包插件
    升级到v4.3.0,从
    index.html
    中删除
    ,并删除
    chunkSortMode:'dependency'

    ,您需要在index.html中配置
    。您可以o通过为
    webpack.common.js
    webpack.prod.js
    ()中的
    HtmlWebpackPlugin
    设置
    base
    配置选项来实现此目的。默认情况下,它设置为
    //code>:

    new HtmlWebpackPlugin({
      base: '/',
    
    改为:

    new HtmlWebpackPlugin({
      base: '/myapp/',
    
    这是在中添加到蓝图的


    如果要在BrowserSync设置中使用
    dev
    中的上下文路径,请使用以下配置
    webpack dev server

    • publicPath:'/myapp/,
    • contentBasePublicPath:'/myapp/,
    • .map(path=>'/myapp'+path)
      添加到
      devServer.proxy[0].context的末尾(代理的路径列表,如
      /api
      )。可能是执行此部分的更好方法,但找不到它

    由于基本href在客户端构建过程中被替换,因此无法通过环境变量对Docker容器进行开箱即用的配置。这里一个可能的解决方案是向添加一个步骤,用上下文路径替换
    /app/resources/static/index.html
    中的基本href(例如,如果设置了
    SERVER\u SERVLET\u CONTEXT\u PATH



    注意:如果您使用的是
    jhipster vuejs
    版本的
    html网页包插件
    v3.x,那么请将
    html网页包插件
    升级到v4.3.0,从
    index.html
    中删除
    ,并删除
    chunkSortMode:'dependency'
    ,谢谢您的回复。我编辑了我的帖子,以反映我在欢迎您的回复。我仍然想知道我是否在网页包方面做错了什么,是否可以动态完成。再次感谢您。我添加了一些配置,以便在开发中使用它,并添加了一个可能的解决方案来动态更改它。感谢您的回复。我编辑了我的帖子,以反映我在您的回复后所做的事情。我仍然希望o知道我是否在webpack方面做了一些错误的事情,以及它是否可以动态完成。再次感谢。我添加了一些配置,以便在dev中使用它,并添加了一个可能的解决方案来动态更改它。