Angular & Webpack Production Build, требующий index.html в URL на GoDaddy - PullRequest
0 голосов
/ 23 октября 2019

Я работаю над развертыванием своего приложения на серверах Go Daddy. У меня есть внешний интерфейс Angular (в настоящее время Angular 4) с Webpack (3.4.1) и серверная часть Java. В настоящее время я могу только запустить домашнюю страницу проекта, включив в URL index.html:

domain.com/index.html // loads the home page on the live web

Но я могу загрузить свою домашнюю страницу без index.html при локальной разработке:

localhost:8080 // loads the home page on my local

Я хотел бы получить такую ​​же функциональность на своем активном домене - уберите необходимость в index.html в URL. Есть ли что-то, что мне нужно изменить во внешнем интерфейсе с производственной сборкой Angular, что вызывает необходимость в index.html при работе на Go Daddy? Или это другая проблема, связанная с настройкой бэкэнда / подключением к серверам Go Daddy?

Мои сценарии package.json: Я запускаю npm run build для создания файла dist.

  "scripts": {
    "start": "webpack-dev-server --inline --progress --port 4200",
    "test": "karma start",
    "build": "rimraf dist && webpack --config webpack/webpack.prod.js --progress --profile --bail"
  }

Мой webpack.prod.js

var webpack = require('webpack');
var webpackMerge = require('webpack-merge');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var commonConfig = require('./webpack.common.js');
var helpers = require('./helpers');

const ENV = process.env.NODE_ENV = process.env.ENV = 'production';

module.exports = webpackMerge(commonConfig, {
  devtool: 'source-map',

  output: {
    path: helpers.root('dist'),
    publicPath: '/',
    filename: '[name].[hash].js',
    chunkFilename: '[id].[hash].chunk.js'
  },

  plugins: [
    new webpack.NoEmitOnErrorsPlugin(),
    new webpack.optimize.UglifyJsPlugin({ // https://github.com/angular/angular/issues/10618
      mangle: {
        keep_fnames: true
      }
    }),
    new ExtractTextPlugin('[name].[hash].css'),
    new webpack.DefinePlugin({
      'process.env': {
        'ENV': JSON.stringify(ENV)
      }
    }),
    new webpack.LoaderOptionsPlugin({
      htmlLoader: {
        minimize: false // workaround for ng2
      }
    })
  ]
});

Мой index.html

<!DOCTYPE html>
<html>

<head>
  <base href=".">
  <title>MooseLake Resort</title>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css?family=Playfair+Display&display=swap" rel="stylesheet">
  <link href="https://unpkg.com/bootstrap@4.0.0-beta/dist/css/bootstrap.min.css" rel="stylesheet">
  <link href="https://unpkg.com/angular-calendar@0.21.2/dist/css/angular-calendar.css" rel="stylesheet">
  <script src="https://unpkg.com/reflect-metadata@0.1.10"></script>
  <script src="https://unpkg.com/systemjs@0.19/dist/system.js"></script>
  <!-- <script src="https://js.stripe.com/v3/"></script> -->
  <script src="https://maps.googleapis.com/maps/api/js"></script>
</head>

<body>
  <app>
  </app>
</body>

</html>

Что-нибудь выглядитневерно здесь с производственной сборкой, которая может вызывать потребность в index.html в URL?

...