मैं एक प्रसिद्ध समस्या में भाग गया, हालांकि, इसका कोई स्पष्ट समाधान नहीं है: वेबपैक का निम्नलिखित सेटअप (encore, सिम्फनी के भीतर) फ़ायरफ़ॉक्स और failed to decode downloaded font में त्रुटि downloadable font: rejected by sanitizer ... उत्पन्न करता है। एज में कुछ के लिए (सभी नहीं!) @fontawesome फोंट और आईपीएम प्लेक्स मोनो (जिसे मैंने एनपीएम के माध्यम से स्थापित किया है)

.addLoader(
    {
        test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
        use: [
            {
                loader: 'file-loader',
                options: {
                    name: "[name].[ext]",
                    outputPath: "./fonts"
                }
            }
        ]
    })

मैंने पहले से ही सब कुछ करने की कोशिश की है जो मुझे स्टैक ओवरफ्लो, जीथब और अन्य साइटों पर मिल सकता है। कोई अन्य लोडर (url-loader) नहीं, outputPath का संशोधन या publicPath सेट करना, और न ही किसी अन्य चीज़ ने मदद की। त्रुटि वही रहती है। आयात ठीक हैं क्योंकि वेबपैक द्वारा कोई संकलन त्रुटि नहीं है। वेबपैक कॉन्फ़िगरेशन के इस भाग के बिना, सब कुछ भी ठीक है। वेबसर्वर फ़ाइल को सही ढंग से सबमिट कर रहा है और इसके लिए URL तक पहुँचने से एक वैध फ़ॉन्ट फ़ाइल सीधे डाउनलोड हो जाती है। इस प्रकार पथ और कुछ भी ठीक प्रतीत होता है। तो... यहाँ क्या गलत है?

समस्या फ़ायरफ़ॉक्स, क्रोम और एज (प्रत्येक नवीनतम संस्करण) में होती है।

इसे ठीक करने के लिए कोई भी विचार?

4
meistermuh 17 जुलाई 2020, 19:25

1 उत्तर

सबसे बढ़िया उत्तर

मुझे ऑनलाइन मिले कई समाधानों के साथ बहुत कुछ खेलने के बाद, ऐसा लगता है कि यह मेरे लिए एक है:

.copyFiles({
    from: './assets/images',
    to: 'images/[path][name].[hash].[ext]',
})
.configureFilenames({
    images: 'images/[name].[hash].[ext]',
    fonts: 'fonts/[name].[hash].[ext]',
})

स्पष्टीकरण: वेबपैक को निश्चित रूप से विक्रेता से फाइलों की प्रतिलिपि बनाना है। ऐसा करने से, ज्यादातर मामलों में हैशिंग (मुझे लगता है) में एक बग के कारण यह विफल हो गया। हैश की अदला-बदली/जोड़ने से कुछ विक्रेता फ़ाइलों के URL सही ढंग से नहीं बदले गए हैं। यह मेरा अनुमान है, कम से कम। मैंने [hash:6] और [hash:8] के साथ-साथ हैश को अनदेखा करने की कोशिश की (जैसा कि मेरे प्रश्न में दिया गया है)। छोटे लोगों में से एक सफल हुआ, अन्य असफल रहे। अन्य कॉन्फ़िगरेशन (विभिन्न लोडर या प्लगइन्स) ने बिल्कुल भी मदद नहीं की। मैंने तब और बस संयोग से पूरा हैश और ... बजिंगा सेट कर दिया! इसलिए, अंत में, मैं उन सभी के विफल होने का वास्तविक कारण नहीं जानता, लेकिन कम से कम अब मुझे पता है कि समस्या को कैसे हल किया जाए: वेबपैक को पूर्ण हैश रखकर फ़ाइलों की प्रतिलिपि बनाने और उनका नाम बदलने के लिए कहें और बस।

1
meistermuh 4 नवम्बर 2020, 18:43