2016-07-05 5 views
11

पर काम कर रहे कोणीय 2 रूटिंग प्राप्त करें मैं कोणीय 2 सीख रहा हूं। नोडजेस लाइट-सर्वर पर चलते समय रूटिंग ठीक काम करता है। मैं मुख्य (लोकलहोस्ट: 3000) पृष्ठ पर जा सकता हूं और एप्लिकेशन के माध्यम से जा सकता हूं। मैं लोकलहोस्ट भी टाइप कर सकता हूं: 3000/कर्मचारी और यह अनुरोधित पृष्ठ पर जाएगा।आईआईएस 7.5

ऐप अंततः विंडोज आईआईएस 7.5 सर्वर पर लाइव होगा। अगर मैं मुख्य पृष्ठ (लोकलहोस्ट: 2500) से शुरू करता हूं तो रूटिंग ठीक काम करती है, मैं किसी भी समस्या के साथ आवेदन के माध्यम से स्थानांतरित करने में सक्षम हूं। जहां मैं किसी समस्या में भाग लेता हूं, तब किसी अन्य पृष्ठ पर सीधे जाने का प्रयास करते समय मुख्य लैंडिंग पृष्ठ (लोकलहोस्ट: 2500/कर्मचारी)। मुझे HTTP त्रुटि 404.0 मिलती है।

यहां मेरी app.component फ़ाइल है जो रूटिंग को संभालती है।

import { Component } from '@angular/core'; 
import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from '@angular/router-deprecated'; 
import { HTTP_PROVIDERS } from '@angular/http'; 

import { UserService } from './services/users/user.service'; 
import { LogonComponent } from './components/logon/logon.component'; 
import { EmployeeComponent } from './components/employee/employee.component'; 


@Component({ 
    selector : 'opi-app', 
    templateUrl : 'app/app.component.html', 
    directives: [ROUTER_DIRECTIVES], 
    providers: [ROUTER_PROVIDERS, UserService, HTTP_PROVIDERS] 
}) 

@RouteConfig([ 
    { 
     path: '/', 
     name: 'Logon', 
     component: LogonComponent, 
     useAsDefault: true 
    }, 
    { 
     path: '/employee', 
     name: 'Employee', 
     component: EmployeeComponent 
    } 
]) 

export class AppComponent { } 

मैं कहना चाहता हूं कि मैं इस मुद्दे को समझता हूं। आईआईएस/कर्मचारी की भयावहता की तलाश में है लेकिन यह अस्तित्व में नहीं है। मुझे नहीं पता कि आईआईएस को रूटिंग के बारे में कैसे पता होना है।

+0

आपने किस एएसपीनेट फ्रेमवर्क का उपयोग किया था? एमवीसी? नेट कोर? – maxisam

+0

एएसपीनेट फ्रेमवर्क का उपयोग नहीं कर रहा है। केवल कोणीय 2। जिसमें एचटीएमएल, सीएसएस, और जावास्क्रिप्ट शामिल है। –

+0

क्या आपने इसे हल किया? –

उत्तर

8

आपको इसे प्राप्त करने के लिए URL rewrite module का उपयोग करना चाहिए। इसका उपयोग करने के तरीके पर एक बहुत ही विस्तृत जानकारी here

और आईआईएस 8 पर मेरे लिए काम करने वाला एक नमूना web.config स्निपेट here है।

1

यूआरएल पुनर्लेखन मॉड्यूल का उपयोग कर आवेदन के अंदर रूटिंग पथ को मार देगा। मैंने अपनी index.html फ़ाइल में 404 नहीं मिली प्रतिक्रिया के लिए त्रुटि पृष्ठ बदल दिया है। यह ब्राउज़र में यूआरएल नहीं बदलेगा, लेकिन सर्वर पूरे एप्लिकेशन को वापस कर देगा।

कैसे करें: साइट-> एप्लिकेशन-> स्थिति कोड 404 पर संदर्भ मेनू से त्रुटि पेज संपादित करें ... और विकल्प चुनें इस साइट पर यूआरएल निष्पादित करें। /index.html दर्ज करें और ठीक दबाएं। ध्यान दें कि पथ साइट रूट से है, इसलिए आपको अपना ऐप पथ शामिल करने की आवश्यकता हो सकती है।

+0

उन मामलों के लिए ठोस जहां पुनर्लेखन मॉड्यूल का उपयोग करना संभव नहीं है। यूआरएल '/' निष्पादित करने के लिए 404 बदलना एप्लिकेशन रूटिंग को बरकरार रखेगा। –

+0

ओह मैन, मैं वास्तव में इसके लिए काम करना चाहता था, लेकिन हां, ऐसा नहीं हुआ। अभी भी मेरे http: // localhost पर 404 प्राप्त हो रहा है: 1234/खाता जब मैं पृष्ठ को रीफ्रेश करता हूं ... क्या यह "साइट" के बाद "एप्लिकेशन" के बाद "एप्लिकेशन" नहीं था, तो यह अलग-अलग काम करेगा? मेरा ऐप साइट की जड़ पर चल रहा है ... –

+0

@ सर्ज क्या आप आईआईएस को संपादित कर रहे हैं जिससे आप अपना ऐप निष्पादित कर रहे हैं? एक बंदरगाह निर्दिष्ट करने के बाद मुझे लगता है कि आप एक आईआईएस एक्सप्रेस इंस्टेंस –

30

(कोणीय 2 के लिए, कोणीय 4)

उल्लेख लेख में के रूप में एक web.config फ़ाइल बनाएँ।

<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="AngularJS Routes" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="/" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 

अपनी साइट के मूल निर्देशिका (index.html के समान) में रखें। मेरा डिस्ट फ़ोल्डर (कोणीय-क्ली प्रोजेक्ट) में है।

तैनाती के बाद, यदि आपके पास पहुंच है तो IIS पर जाएं और आप पुनः लिखने-नियम आइकन पर क्लिक कर सकते हैं और देख सकते हैं कि यह इस कॉन्फ़िगरेशन को पढ़ता है। यदि आप नियमों को फिर से लिखने के लिए नहीं देखते हैं और आइकन देखते हैं, तो आपको मॉड्यूल को "मॉड्यूल" आइकन के अंतर्गत सक्षम करने की आवश्यकता होगी। यह कोड स्निपेट लिखा नहीं गया था लेकिन मैं बेहतर कार्यान्वयन विवरण साझा करना चाहता था।

+1

पर बाध्यकारी हो सकता है क्योंकि क्या मेरा उत्तर स्वीकार किया जा सकता है क्योंकि इसमें सटीक कोड और कदम हैं? –

+0

धन्यवाद आदमी, आपने अभी अपना दिन बनाया है। थोड़ी देर के लिए इस के साथ बैठे थे :-) – Arianule

+1

मुझे सदमे में है कि मेरा जवाब स्वीकार नहीं किया गया है :) –

संबंधित मुद्दे