代码之家  ›  专栏  ›  技术社区  ›  punkouter

在指向该站点以模拟多个站点的站点中创建应用程序/虚拟目录。好主意?

  •  0
  • punkouter  · 技术社区  · 14 年前

    我们需要一种说法

    www.site.com/india印度 www.site.com/asia/亚洲 www.site.com/usa美国 等。。。

    但是我们希望所有这些请求都指向www.site.com,而不必为每种类型的站点创建文件和目录。。。所以如果我创建一个虚拟目录(www.site.com/india)并指向www.site.com。。。然后我想我可以查看URL并相应地设置一些参数/text/images来填写模板。。。

    这有道理吗?或者web.configs有问题吗?或者更好的方法

    4 回复  |  直到 14 年前
        1
  •  3
  •   erlando    14 年前

    我鼓励您考虑路由,如下所示: http://www.asp.net/mvc/tutorials/asp-net-mvc-routing-overview-cs

    在这里重复给出的示例(希望)可以看到相关性:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace MvcApplication1
    {
        // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
        // visit http://go.microsoft.com/?LinkId=9394801
    
        public class MvcApplication : System.Web.HttpApplication
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    "Default",                                              // Route name
                    "{controller}/{action}/{id}",                           // URL with parameters
                    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
                );
    
            }
    
            protected void Application_Start()
            {
                RegisterRoutes(RouteTable.Routes);
            }
        }
    }
    

    通过类似的方法,您只需提取所需的信息


    第一个例子是MVC路由,要做webforms路由,你应该看看这里 http://msdn.microsoft.com/en-us/library/cc668202(VS.90).aspx 这里有一个(非常有限的)例子:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.Add("BikeSaleRoute", new Route
        (
           "bikes/sale", 
           new CustomRouteHandler("~/Contoso/Products/Details.aspx")
        ));
    }
    

    使用他们在代码中构建的自定义routehandler。一旦你掌握了诀窍,日常管理人员很容易使用。它们让你更具表现力。

        2
  •  2
  •   KeithS    14 年前

    我想您会发现,在没有不同web.configs指向您的本地化文件的情况下,用五种方法本地化同一个站点是很困难的。

    我要做的是让www.site.com的索引自动发现客户的位置,或者问他们想要什么版本的网站。然后,将它们引用到该站点虚拟目录下的default.aspx,该目录使用一组通用的自定义web控件,这些控件根据该站点web.config中引用的资源文件进行本地化。这样,您只需要复制站点骨架,它可以和index.aspx一样小。

    如果站点主要是aspx,那么这就不起作用了。在这种情况下,我会像以前一样进行网站选择,但使用查询字符串来跟踪客户端位置,从而进行本地化。这应该仍然允许您调出正确的本地化设置。

        3
  •  1
  •   Darin Dimitrov    14 年前

    不,请答应我不要为世界上的每个国家创建虚拟目录。结帐 routing 相反。这里有一些 other examples .

        4
  •  1
  •   Basic    14 年前

    如果您还没有编写站点,可以考虑使用路由或更好的MVC。您绝对不应该创建多个虚拟目录-维护它将是一个噩梦