2010-12-06 26 views
1

J'ai une ancienne application ASP classique que je veux dupliquer en parallèle, c'est-à-dire que je veux configurer une autre copie (en parlant à une base de données différente) avec l'original.ASP classique: problèmes d'URL lors de la duplication d'une application

Donc, où j'ai // MyServer/MyApp1 /, je vais aussi avoir bientôt // MyServer/MyApp2/... jusqu'ici tout va bien. Sauf que de nombreuses URL dans l'application sont absolues (par exemple, les fichiers JS et CSS), par exemple. <script type="text/javascript" src="/MyApp1/menu.js"></script>.

je pourrais chercher des références à /MyApp1/ et le remplacer par /MyApp2/, mais il est une tâche ennuyeuse que je vais devoir répéter que je mets à jour l'application de base, et en cas de vouloir d'autres exemplaires créant - une probabilité bien que temporaire.

je pourrais modifier ces URL à des chemins parents, mais cela signifie que je dois faire référence à chaque ressource différemment, selon l'endroit où dans la structure du dossier de l'application que je suis. Encore une fois, cela fonctionnerait, mais je n'aime pas utiliser les chemins parent pour un certain nombre de raisons.

Étant donné qu'il n'y a pas de fonction tilde (~) dans ASP classique (pour faire référence à la racine de l'application), y a-t-il des alternatives que je peux envisager?

Répondre

1

@CJM: J'ai généralement un db.asp qui contient les function s et les sub s qui gèrent l'ouverture/fermeture des connexions de base de données comme le principal incluent sur pratiquement toutes mes pages. Dans ce db.asp je définirais alors un chemin appurl ou absurl qui pourrait, dans votre cas, avoir /MyApp1, et alors vous pouvez utiliser <script type="text/javascript" src="<%=appurl %>/menu.js"></script> dans vos scripts.

La première fois que vous le faites, ce sera un peu une recherche/Replace mission, mais une fois qu'il est fait, les projets suivants « duplicata » sera juste besoin que d'une variable mise à jour.

+0

En fait, j'ai considéré cette alternative. Je ne suis pas sûr si je vais devoir répéter l'opération assez souvent pour justifier l'effort, mais la partie OCD de moi pense que c'est une question de principe! Cette solution pourrait être aussi bonne que n'importe quelle autre. – CJM

0

En ASP classique, vous pouvez utiliser Server.MapPath("/") pour obtenir le répertoire racine ou Server.MapPath(".") pour obtenir le répertoire en cours.

+0

Server.MapPath renvoie un chemin physique et non une URL - c'est l'URL qui m'intéresse. – CJM