ÍøÒ³Ìø×ªµÄ»ù±¾ÔÀí
ÍøÒ³Ìø×ª£¬¼òµ¥À´Ëµ£¬¾ÍÊÇ´ÓÒ»¸öÍøÒ³Ò³ÃæÌø×ªµ½ÁíÒ»¸öÍøÒ³Ò³ÃæµÄ¹ý³Ì¡£ÕâÒ»¹ý³Ìͨ³£Í¨¹ý³¬Á´½Ó£¨±êÇ©£©¡¢±í?µ¥Ìá½»£¨
±êÇ©£©»òJavaScriptÖеÄÖØ¶¨Ïò£¨Èçwindow.location.href£©À´ÊµÏÖ¡£ÔÚ¼¼Êõ²ãÃæ£¬µ±Óû§µã»÷Ò»¸ö³¬Á´½Ó»òÌá½»Ò»¸ö±íµ¥£¬ä¯ÀÀÆ÷»áÏòÄ¿±êÍøÕ¾·¢ËÍÒ»¸öHTTPÇëÇ󣬷þÎñÆ÷½ÓÊÕµ½ÇëÇóºó£¬·µ»ØÏàÓ¦µÄHTMLÒ³Ãæ£¬ä¯ÀÀÆ÷ÔÙäÖȾÕâ¸öÒ³Ãæ£¬Íê³ÉÌø×ª¡£
2Òì²½¼ÓÔØÓëµ¥Ò³Ó¦Óã¨SPA£©
µ¥Ò³Ó¦Óã¨SinglePageApplication£¬SPA£©ºÍÒì²½¼ÓÔØ¼¼Êõ¿ÉÒÔÏÔÖøÌáÉýÍøÒ³Ìø×ªµÄÁ÷³©¶ÈºÍËÙ¶È¡£SPAͨ¹ýJavaScript¶¯Ì¬¼ÓÔØÄÚÈÝ£¬±ÜÃâÁËÍêÕûµÄÒ³ÃæË¢Ð£¬´Ó¶øÊµÏÖÁ˸ü¼ÓÁ÷³©µÄÓû§ÌåÑé¡£³£ÓõĿò¼ÜÈçReact¡¢VueºÍAngular¶¼Ö§³ÖÕâÖÖ¼¼Êõ¡£
Òì²½¼ÓÔØÍ¨¹ýAjaxÇëÇóºÍWebSocketµÈ¼¼Êõ£¬¿ÉÒÔÔÚ²»Ë¢ÐÂÕû¸öÒ³ÃæµÄÇé¿öϼÓÔØÐÂÊý¾Ý£¬Ìá¸ßÁËÓû§µÄ²Ù×÷ЧÂÊ¡£
ǰ¶Ë´úÂë
ÔÚǰ¶Ë´úÂëÖУ¬¿ÉÒÔͨ¹ýJavaScriptʵÏÖÍøÒ³Ìø×ª¡£ÀýÈ磬ʹÓÃwindow.location.href»òÕßwindow.location.replace½øÐÐÌø×ª¡£Ç°¶ËÌø×ªËäÈ»Áé»î£¬µ«ÐèҪעÒⰲȫÐÔ¡£²»¼ÓÃܵÄÌø×ªÁ´½Ó¿ÉÄܻᱻ´Û?¸Ä£¬µ¼ÖÂÓû§±»Òýµ¼µ½²»°²È«µÄÍøÕ¾¡£
Òò´Ë£¬ÔÚʹÓÃǰ¶ËÌø×ªÊ±£¬Ó¦µ±È·±£Ìø×ªÁ´½ÓµÄ°²È«ÐÔ¡£
3·ÀÖ¹¶ñÒâÌø×ª
ͨ¹ýJavaScriptµÄlocation¶ÔÏó½øÐÐÌø×ªÊ±£¬ÒªÈ·±£ËùÓÐÌø×ªURL¶¼¾¹ýÑϸñÑéÖ¤£¬ÒÔ·ÀÖ¹¶ñÒâÌø×ª¡£¿ÉÒÔʹÓð×Ãûµ¥»úÖÆ£¬Ö»ÔÊÐíÌø×ªµ½¿ÉÐŵÄURL¡£¿ÉÒÔʹÓÃContentSecurityPolicy£¨CSP£©À´ÏÞÖÆ¶ñÒâ½Å±¾µÄÖ´ÐУ¬´Ó¶ø½øÒ»²½ÌáÉý°²È«ÐÔ¡£
·þÎñÆ÷ÅäÖÃ
·þÎñÆ÷ÅäÖÃÊÇÍøÒ³Ìø×ªµÄ»ù´¡¡£Í¨¹ý·þÎñÆ÷ÅäÖ㬿ÉÒÔʵÏÖURLÖØÐ´¡¢HTTPÌø×ªµÈ¹¦ÄÜ¡£ÕâЩÅäÖÃÐèÒª¸ù¾Ý¾ßÌåµÄ·þÎñÆ÷»·¾³ºÍÒµÎñÐèÇóÀ´É趨¡£ÀýÈ磬ÔÚApache·þÎñÆ÷ÖУ¬¿ÉÒÔͨ¹ý.htaccessÎļþ½øÐÐURLÖØÐ´ÅäÖ㬶øÔÚNginx·þÎñÆ÷ÖУ¬¿ÉÒÔͨ¹ýÅäÖÃÎļþ½øÐÐÌø×ªÉèÖá£
3Ô¤¼ÓÔØÓëÀÁ¼ÓÔØ
Ô¤¼ÓÔØºÍÀÁ¼ÓÔØÊÇÓÅ»¯ÍøÒ³Ìø×ªÐÔÄܵÄÓÐЧ·½·¨¡£Ô¤¼ÓÔØÊÇÔÚÓû§Î´µã»÷ǰ£¬Ìáǰ¼ÓÔØ¿ÉÄÜÐèÒªµÄ×ÊÔ´£¬ÒÔ¼õÉٵȴýʱ¼ä¡£ÀýÈ磬ÔÚÓû§µã»÷ÏÂÒ»Ò³ÃæÖ®Ç°£¬¿ÉÒÔÌáǰ¼ÓÔØÏÂÒ»Ò³ÃæµÄCSSºÍJavaScriptÎļþ¡£ÀÁ¼ÓÔØÔòÊÇÔÚÐèҪʱ²Å¼ÓÔØ×ÊÔ´£¬ÈçͼƬºÍÊÓÆµ£¬¿ÉÒÔÏÔÖø¼õÉÙ³õʼ¼ÓÔØÊ±¼ä¡£
ÔÚÊý×Ö»¯Ê±´ú£¬ÍøÒ³Ìø×ª²»½ö½öÊǼòµ¥µÄµ¼º½£¬¸üÊÇһß´ÔÓµÄÒÕÊõÓ밲ȫDZÐеĽáºÏ¡£µ±ÄãÔÚä¯ÀÀÍøÕ¾Ê±£¬¾³£»áÓöµ½Ò³Ãæ×Ô¶¯Ìø×ª»òÕßµã»÷Á´½Óºó±»Òýµ¼?µ½ÁíÒ»¸öÒ³Ãæ¡£ÕâÖÖ¿´ËÆÆ½³£µÄ²Ù×÷±³ºó£¬Ô̺¬×ŷḻµÄ¼¼ÊõºÍÉè¼ÆÖǻۣ¬ÊÇÍøÒ³¿ª·¢ÕߺÍÓû§ÌåÑéÉè¼ÆÊ¦¹²Í¬Å¬Á¦µÄ½á¾§¡£
±¾ÎĽ«´øÄãÉîÈë̽Ë÷ÍøÒ³Ìø×ªµÄ°ÂÃØ£¬½ÒʾÆä±³ºóµÄÒþÃØÒÕÊõÓ밲ȫDZÐеľ«Ëè¡£
У¶Ô£ºÐ»Ìï(p6mu9CWFoIx7YFddy4eQTuEboRc9VR7b9b)


