2009-11-26 5 views
2

J'ai asp.net usercontrol qui est notamment un script js comme celui-cichemin du script relatif à usercontrol

<script type="text/javascript" language="javascript" src="../JScripts/JScripts.js"/> 

Le problème est que lorsque je me sers de ce usercontrol dans certaines pages, il fonctionne correctement, mais lorsque vous utilisez certaines pages dans une autre structure de dossier, il échoue avec le message d'exception de fichier non trouvé. Changement js chemin à

~/JScripts/JScripts.js 

ne aide pas. est-il possible de résoudre ce problème de façon décorative?

+0

Avez-vous essayé mon Solution? cela fonctionnera définitivement. –

Répondre

2

Avez-vous envisagé chemin spécifiant de la racine?

src="/JScrips/JScripts.js" 
+0

ne fonctionne pas :( –

+1

Cela fonctionnerait si vous vous assurer que vous utilisez le chemin relatif complet de votre racine - nous ne savons pas ce que c'est, mais par exemple "/MonApp/Resources/JScripts/JScrupts.js". – Fenton

+0

Aussi, vous auriez besoin d'épeler JScripts correctement, pas comme je l'ai fait dans mon commentaire – Fenton

1

Que diriez-vous:

<script type="text/javascript" language="javascript" src="/JScripts/JScripts.js"/> 

(utiliser le chemin absolu de la racine de votre application)

3

vous pouvez essayer ResolveUrl cela comme ...

Page.ClientScript.RegisterClientScriptInclude("JScripts", ResolveUrl("~/JScripts/JScripts.js")); 
7

ÉDITÉ:

vous avez toujours la possibilité de faire quelque chose comme ceci:

<script type="text/javascript" language="javascript" src="<%= ResolveClientUrl("~/JScripts/JScripts.js") %>" /> 
+0

Ou vous pouvez utiliser ResolveUrl qui vous donnera un chemin absolu par rapport à la racine de l'application. – pbz