আমি আসলে একটি কৌণিক 2 + টাইপসক্রিপ্ট + সিস্টেমজস অ্যাপ্লিকেশন কীভাবে স্থাপন করব?


103

Angular.io এ একটি কুইকস্টার্টার টিউটোরিয়াল রয়েছে যা টাইপস্ক্রিপ্ট এবং সিস্টেমজ ব্যবহার করে। এখন যে আমি যে মিনিপাপ চালাচ্ছি, আমি কীভাবে ডিপ্লোয়যোগ্য কিছু তৈরি করতে যাব? আমি এটি সম্পর্কে কোনও তথ্য খুঁজে পাইনি।

আমার কি সিস্টেমে কনফাইগের কোনও অতিরিক্ত সরঞ্জাম, কোনও অতিরিক্ত সেটিংস দরকার?

(আমি জানি যে আমি ওয়েবপ্যাক ব্যবহার করতে এবং একটি একক বান্ডিল.জেএস তৈরি করতে পারতাম, তবে আমি টিউটোরিয়ালে যেমন সিস্টেমজ ব্যবহার করি তেমন ব্যবহার করতে চাই)

এই সেটআপের মাধ্যমে কেউ তাদের বিল্ড প্রক্রিয়াটি ভাগ করতে পারে (কৌণিক 2, টাইপস্ক্রিপ্ট, সিস্টেমজ)


এখানে ব্যবহার JSPM স্থাপনার জন্য একটি NG2 অ্যাপ্লিকেশন নির্মাণের জন্য আমার রেসিপি stackoverflow.com/a/34616199/3532945
ব্রান্ডো

2
সহজ উত্তর NG বিল্ড -prod stackoverflow.com/a/38421680/5079380
আমর ElAdawy

উত্তর:


66

এই স্তরে বোঝার মূল বিষয়টি হ'ল নিম্নলিখিত কনফিগারেশনটি ব্যবহার করে আপনি সরাসরি সংকলিত জেএস ফাইলগুলি কনটাক্ট করতে পারবেন না।

টাইপস্ক্রিপ্ট সংকলক কনফিগারেশনে:

{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "rootDir": ".",
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}

এইচটিএমএলে

System.config({
  packages: {
    app: {
      defaultExtension: 'js',
      format: 'register'
    }
  }
});

প্রকৃতপক্ষে, এই জেএস ফাইলগুলিতে বেনামে মডিউল থাকবে। বেনামে মডিউলটি একটি জেএস ফাইল যা ব্যবহার করে System.registerতবে প্রথম প্যারামিটার হিসাবে মডিউলের নাম ছাড়াই। মডিউল ম্যানেজার হিসাবে কনফিগার করা যখন সিস্টেমজগুলি ডিফল্টরূপে টাইপস্ক্রিপ্ট সংকলক তৈরি করে।

সুতরাং আপনার সমস্ত মডিউলগুলি একটি একক জেএস ফাইলে রাখতে outFileআপনার টাইপস্ক্রিপ্ট সংকলক কনফিগারেশনের মধ্যে থাকা সম্পত্তিটি উত্তোলন করতে হবে ।

এটি করতে আপনি নীচের অভ্যন্তর ঝালটি ব্যবহার করতে পারেন:

const gulp = require('gulp');
const ts = require('gulp-typescript');

var tsProject = ts.createProject('tsconfig.json', {
  typescript: require('typescript'),
  outFile: 'app.js'
});

gulp.task('tscompile', function () {
  var tsResult = gulp.src('./app/**/*.ts')
                     .pipe(ts(tsProject));

  return tsResult.js.pipe(gulp.dest('./dist'));
});

এটি অন্য কিছু প্রক্রিয়াজাতকরণের সাথে একত্রিত হতে পারে:

  • সংকলিত টাইপস্ক্রিপ্ট ফাইলগুলিকে অশুচি করতে
  • একটি app.jsফাইল তৈরি করতে
  • vendor.jsতৃতীয় পক্ষের লাইব্রেরির জন্য একটি ফাইল তৈরি করতে
  • boot.jsমডিউলটি আমদানি করতে একটি ফাইল তৈরি করতে যা অ্যাপ্লিকেশনটির বুটস্ট্র্যাপ করে। এই ফাইলটি অবশ্যই পৃষ্ঠার শেষে অন্তর্ভুক্ত করা উচিত (যখন সমস্ত পৃষ্ঠা লোড হয়)।
  • index.htmlএই দুটি ফাইল অ্যাকাউন্টে নিতে আপডেট করতে

নিম্নলিখিত নির্ভরতা গুল্প কাজে ব্যবহৃত হয়:

  • নি: শ্বাসে-CONCAT
  • নি: শ্বাসে-এইচটিএমএল-প্রতিস্থাপন
  • নি: শ্বাসে-টাইপ করা বিষয়
  • নি: শ্বাসে-কুতসিত করান

নিম্নলিখিতটি একটি নমুনা যাতে এটি মানিয়ে নেওয়া যায়।

  • app.min.jsফাইল তৈরি করুন

    gulp.task('app-bundle', function () {
      var tsProject = ts.createProject('tsconfig.json', {
        typescript: require('typescript'),
        outFile: 'app.js'
      });
    
      var tsResult = gulp.src('app/**/*.ts')
                       .pipe(ts(tsProject));
    
      return tsResult.js.pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));
    });
    
  • vendors.min.jsফাইল তৈরি করুন

    gulp.task('vendor-bundle', function() {
      gulp.src([
        'node_modules/es6-shim/es6-shim.min.js',
        'node_modules/systemjs/dist/system-polyfills.js',
        'node_modules/angular2/bundles/angular2-polyfills.js',
        'node_modules/systemjs/dist/system.src.js',
        'node_modules/rxjs/bundles/Rx.js',
        'node_modules/angular2/bundles/angular2.dev.js',
        'node_modules/angular2/bundles/http.dev.js'
      ])
      .pipe(concat('vendors.min.js'))
      .pipe(uglify())
      .pipe(gulp.dest('./dist'));
    });
    
  • boot.min.jsফাইল তৈরি করুন

    gulp.task('boot-bundle', function() {
      gulp.src('config.prod.js')
        .pipe(concat('boot.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
     });
    

    config.prod.jsকেবল নিম্নলিখিত রয়েছে:

     System.import('boot')
        .then(null, console.error.bind(console));
    
  • index.htmlফাইল আপডেট করুন

    gulp.task('html', function() {
      gulp.src('index.html')
        .pipe(htmlreplace({
          'vendor': 'vendors.min.js',
          'app': 'app.min.js',
          'boot': 'boot.min.js'
        }))
        .pipe(gulp.dest('dist'));
    });
    

    index.htmlসৌন্দর্য নিচের মত:

    <html>
      <head>
        <!-- Some CSS -->
    
        <!-- build:vendor -->
        <script src="node_modules/es6-shim/es6-shim.min.js"></script>
        <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
        <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
        <script src="node_modules/systemjs/dist/system.src.js"></script>
        <script src="node_modules/rxjs/bundles/Rx.js"></script>
        <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
        <script src="node_modules/angular2/bundles/http.dev.js"></script>
        <!-- endbuild -->
    
        <!-- build:app -->
        <script src="config.js"></script>
        <!-- endbuild -->
      </head>
    
      <body>
        <my-app>Loading...</my-app>
    
        <!-- build:boot -->
        <!-- endbuild -->
      </body>
    </html>
    

লক্ষ্য করুন যে System.import('boot');আপনার সমস্ত অ্যাপ উপাদান app.min.jsফাইল থেকে নিবন্ধিত হওয়ার জন্য অপেক্ষা করতে অবশ্যই শরীরের শেষে করা উচিত ।

আমি সিএসএস এবং এইচটিএমএল মিনিফিকেশন পরিচালনা করার উপায়টি এখানে বর্ণনা করি না।


1
আপনি একটি উদাহরণ সহ একটি গিথুব রেপো তৈরি করতে পারেন দয়া করে?
jdelobel

আমি আপনার নির্দেশাবলী অনুসরণ করেছিলাম এবং সমস্ত দৃষ্টিতে ভাল লাগছে। যাইহোক, আমি ব্রাউজারে অ্যাপটি চালানোর সময় আমি এই কনসোল লগ ত্রুটিটি পেয়েছি: "system.src.js: 1625 আনকচড প্রকারের ত্রুটি: একই মডিউল ফাইলে একাধিক বেনামে System.register কল" " কোনও ধারণা যা এর অর্থ এবং কীভাবে এটি ঠিক করবেন?
কৌণিকুল

@ অ্যাংুলারএম: আপনার কি আউটফাইলে প্যারামিটার আছে? এটি আপনার ত্রুটির মূল বিষয় ;-)
থিয়েরি টেম্পিলার

আমার এটি আমার গুল্প ফাইল এবং tsconfig
এঙ্গুলারমে

আমি জমা দেওয়া গিথুব প্রকল্পটি একবার দেখে নিতে পারি? আমার মন্তব্য উপরে দেখুন। আপনি কি আপনার কোডের সাথে কিছু পার্থক্য দেখছেন?
থিয়েরি টেম্পিলার

28

আপনি কৌণিক 2-ক্লাইড বিল্ড কমান্ড ব্যবহার করতে পারেন

ng build -prod

https://github.com/angular/angular-cli/wiki/build#bundling

সমস্ত-নির্ভরতা একক ফাইলের মধ্যে বা বান্ডিলের মাধ্যমে- প্রোড পতাকা দ্বারা নির্মিত এবং গাছ-কাঁপানো কৌশলগুলি ব্যবহার করে।ng build -prodng serve -prod

হালনাগাদ

এই উত্তরটি জমা দেওয়া হয়েছিল যখন কৌনিক 2 আরসি 4 এ ছিল

আমি এটি আবার কৌণিক-ক্লিপ বিটা 21 এবং কৌণিক 2 ^ 2.1.0 এ চেষ্টা করেছি এবং এটি প্রত্যাশার মতো কাজ করছে

এই উত্তরের জন্য আপনি ব্যবহার করতে পারেন কৌণিক-ক্লিপ দিয়ে অ্যাপ্লিকেশন শুরু করতে হবে

ng new myApp

বা বিদ্যমান একটিতে

ng init

আপডেট 08/06/2018

কৌণিক 6 এর জন্য বাক্য গঠন আলাদা।

ng build --prod --build-optimizer

ডকুমেন্টেশন চেক করুন


8
এটির জন্য আপনার অ্যাপ্লিকেশনটি কৌণিক-ক্লাইমের মতামত কাঠামোর মধ্যে কাঠামোযুক্ত হওয়া দরকার।
মাইকেল পেল

2
@ আমর এলএডাওয়াই এফওয়াইআই কৌণিক-ক্লিপ ওয়েবপ্যাকে স্থানান্তরিত হয়েছে। এই প্রশ্নটি সিস্টেমজেএস সম্পর্কিত। এনজি বিল্ড আমার পক্ষে কাজ হয় না।
শাহরিয়ার হাসান

@ শাহরিয়ারহসান সাeedদ আপনি কি উত্তরটি জমা দেওয়ার সময় বা আপনি চেষ্টা করার সময়টির কথা উল্লেখ করছেন?
আমর এলআদাভি

@ আমরএলএডভি, আপনি যে মডিউলগুলিতে এটি কাজ করে সেখানে সংস্করণ যুক্ত করতে পারেন। জুলাইয়ের পর থেকে অ্যাঙ্গুলার 2 বেশ খানিকটা পরিবর্তন হয়েছে।
ppovoski

2
ট্যুর অফ হিরোসের টিউটোরিয়ালটি ক্লাইপ সংস্করণে রূপান্তর করা তুচ্ছ। কেবল ক্লাইম ব্যবহার করে একটি নতুন প্রকল্প তৈরি করুন এবং তারপরে টিউটোরিয়াল ফাইলগুলি অনুলিপি করুন।
রোসদী কাশিম

12

আপনি গুলপ এবং সিস্টেমজেএস-বিল্ডার সহ সিস্টেমজেএস ব্যবহার করে টাইপস্ক্রিপ্টে একটি কৌনিক 2 (2.0.0-rc.1) প্রকল্প তৈরি করতে পারেন ।

২.০.০-আরসি .১ ( পুরো উত্স , সরাসরি উদাহরণ ) চলমান হিরোদের ট্যুর কীভাবে তৈরি, বান্ডিল করা এবং মিনিফাই করতে হবে তার একটি সরল সংস্করণ নীচে দেওয়া হয়েছে ।

gulpfile.js

var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
var typescript = require('gulp-typescript');
var systemjsBuilder = require('systemjs-builder');

// Compile TypeScript app to JS
gulp.task('compile:ts', function () {
  return gulp
    .src([
        "src/**/*.ts",
        "typings/*.d.ts"
    ])
    .pipe(sourcemaps.init())
    .pipe(typescript({
        "module": "system",
        "moduleResolution": "node",
        "outDir": "app",
        "target": "ES5"
    }))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('app'));
});

// Generate systemjs-based bundle (app/app.js)
gulp.task('bundle:app', function() {
  var builder = new systemjsBuilder('public', './system.config.js');
  return builder.buildStatic('app', 'app/app.js');
});

// Copy and bundle dependencies into one file (vendor/vendors.js)
// system.config.js can also bundled for convenience
gulp.task('bundle:vendor', function () {
    return gulp.src([
        'node_modules/jquery/dist/jquery.min.js',
        'node_modules/bootstrap/dist/js/bootstrap.min.js',
        'node_modules/es6-shim/es6-shim.min.js',
        'node_modules/es6-promise/dist/es6-promise.min.js',
        'node_modules/zone.js/dist/zone.js',
        'node_modules/reflect-metadata/Reflect.js',
        'node_modules/systemjs/dist/system-polyfills.js',
        'node_modules/systemjs/dist/system.src.js',
      ])
        .pipe(concat('vendors.js'))
        .pipe(gulp.dest('vendor'));
});

// Copy dependencies loaded through SystemJS into dir from node_modules
gulp.task('copy:vendor', function () {
  gulp.src(['node_modules/rxjs/**/*'])
    .pipe(gulp.dest('public/lib/js/rxjs'));

  gulp.src(['node_modules/angular2-in-memory-web-api/**/*'])
    .pipe(gulp.dest('public/lib/js/angular2-in-memory-web-api'));
  
  return gulp.src(['node_modules/@angular/**/*'])
    .pipe(gulp.dest('public/lib/js/@angular'));
});

gulp.task('vendor', ['bundle:vendor', 'copy:vendor']);
gulp.task('app', ['compile:ts', 'bundle:app']);

// Bundle dependencies and app into one file (app.bundle.js)
gulp.task('bundle', ['vendor', 'app'], function () {
    return gulp.src([
        'app/app.js',
        'vendor/vendors.js'
        ])
    .pipe(concat('app.bundle.js'))
    .pipe(uglify())
    .pipe(gulp.dest('./app'));
});

gulp.task('default', ['bundle']);

system.config.js

var map = {
  'app':                                'app',
  'rxjs':                               'vendor/rxjs',
  'zonejs':                             'vendor/zone.js',
  'reflect-metadata':                   'vendor/reflect-metadata',
  '@angular':                           'vendor/@angular'
};

var packages = {
  'app':                                { main: 'main', defaultExtension: 'js' },
  'rxjs':                               { defaultExtension: 'js' },
  'zonejs':                             { main: 'zone', defaultExtension: 'js' },
  'reflect-metadata':                   { main: 'Reflect', defaultExtension: 'js' }
};

var packageNames = [
  '@angular/common',
  '@angular/compiler',
  '@angular/core',
  '@angular/http',
  '@angular/platform-browser',
  '@angular/platform-browser-dynamic',
  '@angular/router',
  '@angular/router-deprecated',
  '@angular/testing',
  '@angular/upgrade',
];

packageNames.forEach(function(pkgName) {
  packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});

System.config({
  map: map,
  packages: packages
});


2
আপনি দয়া করে নির্দিষ্ট করতে পারেন, কিভাবে সিস্টেমজে এবং গুল্প চালাবেন?
জান ড্রোজেন

@ জনড্রোজেন আপনার গলফিলের ঠিক একই জায়গায়, আপনি gulp <taskname>সেখানে চালাতে পারবেন যেখানে "টাস্কনাম" হল সেই টাস্কের নাম যা সিস্টেমজেএস বিল্ডারকে কল করে, আমার উপরের উদাহরণে এটি bundle:app। এই গুল্প টাস্কে আপনি আপনার সিস্টেম কনফিগারেশন এবং আউটফিল নির্দিষ্ট করতে 'systemjs-builder' এনপিএম মডিউলটি ব্যবহার করতে পারেন।
সৎভাবে

@ স্টিইলি: ধন্যবাদ! একটি যাদুমন্ত্র মত কাজ করে. ডিফল্ট টার্গেটের প্রত্যাশা করুন - উগলিফাই () পদ্ধতিটি অনুপস্থিত (অথবা আমি কিছু অনুপস্থিত)। আপনি দয়া করে আমাকে এই শেষ অস্পষ্ট অংশটি ব্যাখ্যা করতে পারেন?
জান দ্রোজেন

@ সত্য আপনি কি কৌনিক 2 এর নতুন সংস্করণ দিয়ে এটি করবেন দয়া করে গাইড করবেন?
মাইক্রোনিক্স

@ স্টিলি.ক্যান আপনি কী সর্বনিম্ন কৌণিক 2 বিল্ড ফাইলগুলির চূড়ান্ত লিঙ্কটি (গিথুবে) সরবরাহ করেন যা কৌণিক 2 কুইকস্টার্ট-অ্যাপ চালানোর জন্য প্রয়োজনীয়?
মাইক্রোনিক্স

1

কৌনিক 2: https://github.com/simonxca/mean2-boilerplate এর জন্য আমার এমইএ 2 এন বয়লারপ্লেট এখানে

এটি একটি সাধারণ বয়লারপ্লেট যা tscজিনিসগুলি একসাথে রাখার জন্য ব্যবহার করে। (প্রকৃতপক্ষে গ্রান্ট-টিএস ব্যবহার করে , এটির মূল tscঅংশটি কেবল কমান্ড)

আপনি গ্রুর্ট ব্যবহার করুন বা না করুন, ধারণাটি হ'ল:

  • নামক ফোল্ডারে আপনার অ্যাপ্লিকেশনটি লিখুন ts/(উদাহরণ public/ts/:)
  • tscআপনার ts/ফোল্ডারের ডিরেক্টরি কাঠামোটি একটি js/ফোল্ডারে আয়না করতে ব্যবহার করুন এবং আপনার ফোল্ডারে কেবল ফাইলগুলি রেফারেন্স js/করুন index.html

কাজ করার জন্য গ্রান্ট-টিএস পেতে (প্লেইন টিএসসি, গুল্প ইত্যাদির জন্য সমতুল্য কমান্ড থাকা উচিত), আপনার tsconfig.jsonডাকা একটি সম্পত্তি আছে "outDir": "../js"এবং আপনার gruntfile.jsসাথে এটি উল্লেখ করুন :

grunt.initConfig({
  ts: {
    source: {tsconfig: 'app/ts/tsconfig.json'}
  },
  ...
});

তারপরে চালান grunt ts, যা আপনার অ্যাপ্লিকেশনটিকে এতে নিয়ে যাবে public/ts/এবং এতে মিরর করবে public/js/

সেখানে। বুঝতে সহজ সুপার। সেরা পদ্ধতির নয়, শুরু করার জন্য একটি ভাল।


1

সিস্টেমজেগুলির জন্য কৌণিক আরসি 1 বান্ডিল করার সবচেয়ে সহজ উপায়টি হ'ল ব্যবহার gulpএবং systemjs-builder:

gulp.task('bundle', function () {
    var path = require('path');
    var Builder = require('systemjs-builder');

    var builder = new Builder('/node_modules');

    return builder.bundle([
        '@angular/**/*.js'
        ], 
        'wwwroot/bundle.js', 
        { minify: false, sourceMaps: false })
        .then(function () {
            console.log('Build complete');
        })
        .catch(function (err) {
            console.log('Build error');
            console.log(err);
        });
});

মন্তব্যে উল্লিখিত হিসাবে, সিস্টেমজেজে বর্তমানে উপাদানগুলি ব্যবহার করে বান্ডিল করার সময় সমস্যা রয়েছে moduleId: module.id

https://github.com/angular/angular/issues/6131

বর্তমানের সুপারিশটি (কৌণিক 2 আরসি 1) সুস্পষ্ট পথগুলি ব্যবহার করার মতো বলে মনে হচ্ছে moduleId: '/app/path/'


এটি আশাব্যঞ্জক বলে মনে হয় তবে ডেকরেটারের বাইরের টেম্পলেটগুলির সাথে সম্পর্কিত পাথগুলি ব্যবহার করার সময় এটি ব্যর্থ হয় @Componentbundle.jsপাথগুলি আপেক্ষিক হয়েও নিখুঁত হিসাবে সমাধান করার চেষ্টা করে 404 টি ত্রুটি সৃষ্টি করে (দেখুন stackoverflow.com/questions/37497635/… )। আপনি কিভাবে এটি মোকাবেলা করেছেন?
বিটলজুইস

আপনি কি moduleIdআপেক্ষিক পথে যাত্রা করছেন?
পল

আমি নিশ্চিত নই বুঝতে পেরেছি. আমার moduleId: module.idমধ্যে রয়েছে@Component
বিটলজুইস

পুরো পথটি নীচে রাখার মতো একই ত্রুটি রয়েছে এবং প্রথম স্থানে templateUrlথাকার উদ্দেশ্যকে পরাস্ত করে moduleId। আমি প্রস্তাবিত হিসাবে আপেক্ষিক পাথগুলি ব্যবহার করার চেষ্টা করছি ( কৌণিক.ইও
ডকস

আপনি নিজেই সুস্পষ্টভাবে পথ নির্ধারণ করে আরও ভাগ্য পেতে পারেন যেমনmoduleId: '/app/components/home/'
পল

0

আমি আমার এনজি 2 প্রকল্পটি পরিবেশন করতে ব্যাকএন্ডে এক্সপ্রেস ব্যবহার করেছি। আপনি আমার গিথব পৃষ্ঠা থেকে এটি পরীক্ষা করতে পারেন: https://github.com/echonax/ng2-beta-and-test-framework


0

অ্যাঙ্গুলার.ইও ওয়েবসাইটের অধীনে, অ্যাডভান্সড / ডিপ্লোয়মেন্ট বিভাগের অধীনে, এটি প্রস্তাব করা হয় যে মোতায়েনের সহজতম উপায় হ'ল 'সার্ভারে বিকাশ পরিবেশের অনুলিপি করা'।

  1. অধীন বিভাগটি দিয়ে যান: সহজতম মোতায়েন সম্ভব possible চূড়ান্ত প্রকল্প ফাইলগুলি কোড বিভাগের ভিতরে দেখানো হয়েছে। মনে রাখবেন যে এটি ওয়েব থেকে এনপিএম প্যাকেজ ফাইল লোড করার জন্য কোডটি ইতিমধ্যে সেট আপ করেছে (স্থানীয় এনপিএম_মডিউল ফোল্ডারের পরিবর্তে)।

  2. এটি আপনার স্থানীয় কম্পিউটারে চলছে কিনা তা নিশ্চিত করুন (এনপিএম স্টার্ট)। তারপরে প্রকল্প ফোল্ডারের অধীনে, '/ src' সাব-ফোল্ডারের অধীনে আপনার সেট করা এস 3 বালতিতে সমস্ত কিছু অনুলিপি করুন। অনুলিপি করতে আপনি ড্রাগ-এন্ড-ড্রপ ব্যবহার করতে পারেন, সেই প্রক্রিয়া চলাকালীন, আপনি ফাইলগুলির জন্য অনুমতি সেটিংস নির্বাচন করার বিকল্পটি পান, সেগুলি 'প্রত্যেককে' পাঠযোগ্য 'করে তুলুন তা নিশ্চিত করুন।

  3. বালতি 'প্রপার্টি' ট্যাবের অধীনে, 'স্ট্যাটিক ওয়েবসাইট হোস্টিং' প্যানেলটি সন্ধান করুন, 'ওয়েবসাইটটি হোস্ট করার জন্য এই বালতিটি ব্যবহার করুন' বিকল্পটি পরীক্ষা করুন এবং সূচী নথি এবং ত্রুটি দলিল উভয়কেই 'index.html' নির্দিষ্ট করুন।

  4. স্থির ওয়েবসাইট এন্ডপয়েন্টে ক্লিক করুন, আপনার প্রকল্পটি ভাল চলছে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.