ReactJS এবং ইমেজগুলি সর্বজনীন ফোল্ডারে


94

আমি ReactJS এ নতুন এবং আমি কোনও উপাদানগুলিতে চিত্রগুলি আমদানি করতে চাই। এই চিত্রগুলি সর্বজনীন ফোল্ডারের ভিতরে রয়েছে এবং কীভাবে প্রতিক্রিয়া উপাদান থেকে ফোল্ডারটি অ্যাক্সেস করতে হয় তা আমি জানি না।

কোন ধারনা ?

সম্পাদনা

আমি বটম.জেএস বা হেডার.জেএস এর মধ্যে একটি চিত্র আমদানি করতে চাই

কাঠামো ফোল্ডারটি হ'ল:

এখানে চিত্র বর্ণনা লিখুন

আমি ওয়েবপ্যাক ব্যবহার করি না। আমি কি ?

সম্পাদনা 2

আমি চিত্রগুলি এবং বাকি সম্পদগুলি লোড করার জন্য ওয়েবপ্যাকটি ব্যবহার করতে চাই। সুতরাং আমার কনফিগার ফোল্ডারে আমার পরবর্তী ফাইলগুলি রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

আমি কোথায় ইমেজগুলির পাথ যুক্ত করতে হবে এবং কীভাবে?

ধন্যবাদ


4
এই ফোল্ডারটি কি পাবলিক? আপনার প্রকল্প কাঠামো কি? আপনি কি ওয়েবপ্যাকের সাহায্যে চিত্রগুলি বান্ডিল করছেন বা এটি বাদ দেওয়া হয়েছে? ইত্যাদি ইত্যাদি প্রসঙ্গে প্রসঙ্গ
জোয়েল হার্কস

@ জোয়েল হার্কস সম্পাদিত।
এসকনোইলো

মনে হচ্ছে এটি প্যাক করা হয়নি। আপনি চেষ্টা করেছেন : src="/images/logofooter.png"?
জোয়েল হার্কস

দুঃখিত এটি প্রশ্নের সাথে প্রাসঙ্গিক নয় তবে আপনি কোন আইকন থিমটি ব্যবহার করেন?
তারমিন

উত্তর:


77

জনসমক্ষে চিত্রগুলির রেফারেন্স দেওয়ার জন্য দুটি উপায় আছে আমি জানি কীভাবে এটি সরাসরি করা যায়। একজন হোমাম বাহরানী থেকে উপরের মতো।

ব্যবহার

    <img src={process.env.PUBLIC_URL + '/yourPathHere.jpg'} /> 

এবং যেহেতু এটি কাজ করে আপনার সত্যিকারের আর কোনও প্রয়োজন নেই তবে, এটিও কাজ করে ...

    <img src={window.location.origin + '/yourPathHere.jpg'} />

4
এটি কনসোলে কোনও ত্রুটি দেখাচ্ছে না তবে চিত্রটি আমি যে আমদানি করেছি তা নয় একটি ডিফল্ট চিত্র আইকন হিসাবে প্রদর্শিত হচ্ছে। আপনার উল্লিখিত দুটি মামলাই আমি চেষ্টা করেছি। আমাকে সাহায্য করুন. ধন্যবাদ!
প্রখর মিত্তাল

148

এর জন্য আপনার কোনও ওয়েবপ্যাক কনফিগারেশন লাগবে না ..

আপনার উপাদানটিতে কেবল চিত্রের পথ দিন। ডিফল্টরূপে প্রতিক্রিয়াটি এটি সর্বজনীন ডিরেক্টরিতে জানবে।

<img src="/image.jpg" alt="image" />

4
এটি আমার পক্ষে কাজ করেছে। কেবল আমি চিত্রগুলি সর্বজনীন ডিরেক্টরিতে অনুলিপি করেছি e প্রতিক্রিয়াটি স্বয়ংক্রিয়ভাবে পথটি সমাধান করেছে।
ভিনিথ ভাস্করণ

4
এবং যদি চিত্রগুলি পাবলিক ফোল্ডারের ভিতরে কোনও ফোল্ডারে থাকে তবে এটি খুঁজে পেতে কী প্রতিক্রিয়া জানাবে?
যুবল লেভি


10

প্রতিক্রিয়া দস্তাবেজগুলি ডকুমেন্টেশনে এটিকে সুন্দরভাবে ব্যাখ্যা করে, আপনাকে process.env.PUBLIC_URLপাবলিক ফোল্ডারে রাখা চিত্রগুলি ব্যবহার করতে হবে । আরও তথ্যের জন্য এখানে দেখুন

return <img src={process.env.PUBLIC_URL + '/img/logo.png'} />;

হ্যাঁ, src ডিয়ার হায়ারার্কির বাইরে গতিশীল চিত্রগুলির জন্য। স্ট্যাটিকগুলি যেমন লোগো বা ব্যাকগ্রাউন্ডের মতো আমদানি পদ্ধতিতে পৌঁছানো যায়।
হুয়ান লানাস 21

4
এছাড়াও, এটি তৈরি করুন অ্যাপ্লিকেশনগুলির সাথে তৈরি প্রতিক্রিয়া অ্যাপ্লিকেশনগুলির জন্য
ইবেলস্টে

4
এটি কনসোলে কোনও ত্রুটি দেখাচ্ছে না তবে চিত্রটি আমি যে আমদানি করেছি তা নয় একটি ডিফল্ট চিত্র আইকন হিসাবে প্রদর্শিত হচ্ছে। আমাকে সাহায্য করুন.
প্রখর মিত্তাল

4

1- কনফিগারেশনের জন্য ওয়েবপ্যাকটি ব্যবহার করা ভাল তবে আপনি কেবল চিত্রের পথটি ব্যবহার করতে পারেন এবং প্রতিক্রিয়া জানাতে পারে যে এটি পাবলিক ডিরেক্টরিতে রয়েছে।

<img src="/image.jpg">

2- আপনি যদি ওয়েবপ্যাকটি ব্যবহার করতে চান যা প্রতিক্রিয়াটির একটি স্ট্যান্ডার্ড অনুশীলন। আপনি এই নিয়মগুলি আপনার ওয়েবপ্যাক.কনফিগ.দেভ.জেএস ফাইলটিতে ব্যবহার করতে পারেন।

module: {
  rules: [
    {
      test: /\.(jpe?g|gif|png|svg)$/i,
      use: [
        {
          loader: 'url-loader',
          options: {
            limit: 10000
          }
        }
      ]
    }
  ],
},

তারপরে আপনি প্রতিক্রিয়া উপাদানগুলিতে চিত্র ফাইলটি আমদানি করতে এবং এটি ব্যবহার করতে পারেন।

import image from '../../public/images/logofooter.png'

<img src={image}/>

2

আমরা জানি প্রতিক্রিয়াটি এসপিএ। জেএসএক্স থেকে উপযুক্ত এইচটিএমএল প্রসারিত করে রুট উপাদান থেকে সবকিছু রেন্ডার করা হয়।

সুতরাং আপনি ইমেজগুলি কোথায় ব্যবহার করতে চান তা বিবেচ্য নয়। সর্বোত্তম অনুশীলন হ'ল একটি নিখুঁত পাথ ব্যবহার করা (জনসাধারণের উল্লেখ সহ)। আপেক্ষিক পথ সম্পর্কে চিন্তা করবেন না।

আপনার ক্ষেত্রে, এটি সর্বত্র কাজ করা উচিত:

"./images/logofooter.png"


1

আপনার জীবন আরও সহজ করতে আপনার এখানে ওয়েবপ্যাক ব্যবহার করা উচিত। আপনার কনফিগারেশনে নীচে বিধি যুক্ত করুন:

const srcPath = path.join(__dirname, '..', 'publicfolder')

const rules = []

const includePaths = [
  srcPath
]
    // handle images
    rules.push({
      test: /\.(png|gif|jpe?g|svg|ico)$/,
      include: includePaths,
      use: [{
        loader: 'file-loader',
        options: {
          name: 'images/[name]-[hash].[ext]'
        }
      }

এর পরে, আপনি কেবল আপনার প্রতিক্রিয়া উপাদানগুলিতে চিত্রগুলি আমদানি করতে পারেন:

import myImage from 'publicfolder/images/Image1.png'

নীচের মত মাই ইমেজ ব্যবহার করুন:

<div><img src={myImage}/></div>

অথবা যদি চিত্রটি স্থানীয় উপাদানগুলির মধ্যে আমদানি করা হয়

<div><img src={this.state.myImage}/></div> 

আমি সন্দেহ করি যদি আপনার কোনও উত্স আমদানি করতে সক্ষম হতে ওয়েবপ্যাক প্রয়োজন।
সিয়া

@ ফশক, আমি বলেছিলাম কাজটি সম্পাদন করা আরও সহজ করে তুলবে।
উমেশ

@ উমেশ আমি ওয়েবপ্যাক দিয়ে এটি করতে পছন্দ করি। সুতরাং আপনি বলেছিলেন যে আমাকে কনফিগারেশনে নিয়ম যুক্ত করতে হবে তবে কোন ফাইলটি? আমার কাছে প্যাথ.জেএস, পলিফিলস.জেএস, ওয়েবপ্যাককনফিগ.ডেভ.জেএস, ওয়েবপ্যাককনফিগ.প্রড.জেএস এবং ওয়েবপ্যাকডেভস সার্ভার.config.js রয়েছে। আমি প্রশ্নটি সম্পাদনা করতে যাচ্ছি যাতে আপনারা সবাই কাঠামোটি দেখতে পারেন। ধন্যবাদ
এসেকনহিলো

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