.htaccess - AngularJS साइट पर ताज़ा करने पर 404 पृष्ठ प्राप्त करना?




github http-status-code-404 (3)

मैं 404 पृष्ठ पर सेवा कर रहा हूं जब भी मैं:

1.) मेरे Angularjs साइट पर किसी भी पृष्ठ को रीफ्रेश करें (रूट पृष्ठ के अलावा)

या

2.) 404 पृष्ठ से रूट पृष्ठ पर जाने के लिए वापस पर क्लिक करें (रूट पृष्ठ 404 होगा)

यहां मेरा .config() कोड है .config()

'use strict';

angular.module('mmApp', ['ngResponsiveImages'])
  .config(function ($locationProvider, $routeProvider) {
    $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix = '!';
    $routeProvider
      .when('/', {
        templateUrl: '/views/design.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: '/views/about.html',
        controller: 'MainCtrl'
      })
      .when('/contact', {
        templateUrl: '/views/contact.html',
        controller: 'MainCtrl'
      })     
      .otherwise({
        redirectTo: '/'
      });
  });

मैं इस समान प्रश्न पर आया हूं लेकिन जवाबों को काफी समझ में नहीं आता है या उन्हें कैसे लागू किया जाए।

AngularJS - यूआरएल पता बदलते समय $ मार्ग प्रदाता काम करने के लिए प्रतीत नहीं होता है और मुझे एक 404 त्रुटि मिलती है

स्वीकृत उत्तर रूट के लिए सभी पथों को फिर से कॉन्फ़िगर करने के लिए अपाचे को सेटअप करने के लिए कहते हैं। मेरी साइट गिथब पेज पर है मेरे पास मेरे gh-pages रेपो में एक .htaccess फ़ाइल है लेकिन मुझे यह पता नहीं है कि रूट को सभी पथ भेजने के लिए इसे कॉन्फ़िगर कैसे करें।

जवाब कहते हैं कि एक और बात पर विचार करना <base> तत्व <base href="/" /> का उपयोग कर रहा है, लेकिन मैं इसे कहां रखूँगा? मेरी index.html ? यदि ऐसा है तो उस फ़ाइल के ऊपर या नीचे? इसके अलावा, क्या मैं सिर्फ href मूल्य को / छोड़ दूँगा?


जिथूब पृष्ठ केवल स्थैतिक फ़ाइलों पर कार्य करते हैं। यह .htaccess में अपाचे के लिए आपके पास कोई भी कॉन्फ़िगरेशन सेटिंग्स नहीं पढ़ी जाएगी।

यदि आप html5Mode पेजों के बाहर एक AngularJS ऐप को चलाने के लिए चाहते हैं, तो आप html5Mode उपयोग नहीं कर सकते।


मैं यहाँ एक समाधान के पास आया: https://coderwall.com/p/kfomwa

यहाँ छोटी पोस्ट है:

कोणीयहें html5Mode प्रदान करता है, जो आपके ऐप का इस्तेमाल हैशटैग के बजाय पुस्टेट-आधारित यूआरएल करता है। हालांकि इसके लिए सर्वर साइड समर्थन की आवश्यकता है, चूंकि उत्पन्न यूआरएल को ठीक से भी ठीक से प्रस्तुत करना आवश्यक है।

यह वास्तव में गिथब पृष्ठों के कस्टम 404 पृष्ठों के साथ ठीक काम करता है, हालांकि यह केवल कस्टम डोमेन सक्षम पृष्ठों के लिए उपलब्ध है।

सबसे पहले, index.html को 404.html में सब कुछ कॉपी करें। उसके बाद, इसे अपने ऐप में जोड़ें:

 angular.module('app', []).config(function($locationProvider) {
      $locationProvider.html5Mode(true);
    });

ध्यान दें कि यदि आप कोणीय 1.1.5 पर हैं, तो सुनिश्चित करें कि आप html5Mode को ठीक से काम करने के लिए सेट करते हैं।

इन सुझावों के बाद मैं अपनी साइट को ठीक से काम कर पा रहा था। अब जब मैं पुनः लोड मारा, तो पेज लोड ठीक से होता है।


मैं अपने अंगुलियज़ एप्लीकेशन को एनजीएक्स पर वागरेंट पर चला रहा हूं। और इसी तरह की समस्या का सामना करना पड़ रहा है। किसी भी यूआरएल के साथ ब्राउज़र को पुनः लोड करने पर, यह मुझे एक 404 पेज देता है

मैंने मुख्य जेएस फ़ाइल में html5mode को सक्षम किया है। जब आपके पास html5Mode सक्षम है, तो # वर्ण अब आपके यूआरएल में इस्तेमाल नहीं होंगे। # प्रतीक उपयोगी है क्योंकि इसमें सर्वर साइड कॉन्फ़िगरेशन की आवश्यकता नहीं है। # बिना, यूआरएल बहुत अच्छा लगता है, लेकिन इसके लिए सर्वर साइड परिवर्तन की भी आवश्यकता होती है

यहां कुछ बदलाव किए गए हैं:

  • /etc/nginx/sites-enabled फ़ोल्डर में nginx विन्यास फ़ाइल ( nginx.conf ) को खोलें (पथ आपके nginx स्थापना निर्देशिका के आधार पर अलग-अलग होंगे)।
  • try_files $uri $uri/ =404; खोजें try_files $uri $uri/ =404; और इसे try_files $uri $uri/ /index.html; साथ try_files $uri $uri/ /index.html;
  • Nginx कॉन्फ़िगरेशन फ़ाइल को सहेजें
  • Nginx sudo service nginx restart

और मैंने ऊपर दिए गए बदलावों के बाद पृष्ठ को पुनः लोड करने की कोशिश की है यह अपेक्षा के अनुरूप काम करता है