ASP.Net Page principale et le chemin du Fichier de questions
J'essaye d'ajouter une référence de script de jQuery dans ma page principale, de sorte qu'il va travailler pour toute la page. Actuellement, il ressemble à ceci
<script type="text/javascript" src="jquery.js"></script>
Le problème est que le chemin est toujours relative à l'exécution de la page aspx donc cela ne fonctionnera que si l' "jquery.js" fichier se trouve dans le même dossier. Pour le faire fonctionner, je dois changer la ligne:
<script type="text/javascript" src="../../jquery.js"></script>
Ce n'est évidemment pas l'idéal, car il ne fonctionnera que pour les pages qui sont deux niveaux de profondeur à partir du dossier racine. Si j'essaie suivantes, IIS renvoie une erreur à propos d'un caractère inattendu.
<script runat="server" type="text/javascript" src="~/jquery.js"></script>
Des idées?
EDIT: j'ai oublié de mentionner que bien que le script DOIT être dans la balise head
L'actuel haut de réponse jette un "ASP.NET Ajax côté client cadre pas réussi à charger." message d'erreur quand je l'ajoute à ma page principale. Sa levée à partir de javascript et pas la .Net compilateur. Si je déplace le ScriptManager à la tête de la section où il doit être, je reçois une erreur de compilation sur le ScriptManager besoin d'être à l'intérieur d'une balise de formulaire.
La troisième réponse jette un "caractères Illégaux dans le chemin." exception du compilateur
EDIT 2: Quand j'ai ajouter cette ligne à ma balise head, j'obtiens cette erreur de IIS.
La collection de Contrôles ne peuvent pas être modifiées car le contrôle contient les blocs de code (c'est à dire <% ... %>)
RÉSOLU: j'ai pris la modification de la réponse de la réponse ci-dessous et de le mettre à l'intérieur d'un asp:ContentPlaceHolder élément
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
ScriptManager
:EDIT: Si vous absolument besoin de ces dans votre
<head>
section, vous pourriez faire quelque chose comme:EDIT 2: Selon les commentaires, si vous observez que
vous devrez peut-être modifier la ci-dessus pour utiliser la syntaxe de liaison de données:
base href
?head section
?Essayer
<%#
au lieu de<%=
dans la page principale en vertu de la section de la têteEnsuite dans le Code Behind de la page principale sous
Page_Load
ÉvénementMaintenant, vous êtes bon pour aller soit avec jQuery et JavaScript, CSS juste vous avez besoin de changer votre chemin dans
ResolveUrl
le fichier que vous souhaitez gérer CSS, JavaScript, jQuery.Page.Header.DataBind();
ligne pour que cela fonctionne pour moi, merci!runat="server"
attribut sur lahead
tag.Si vous n'allez pas nous asp:ScriptManager ou des chemins absolus, alors vous pouvez le faire comme ceci:
Je ne sais pas si vous les gars a trouvé la solution à votre problème ou pas. J'ai été confrontée au même problème et va noix de comprendre pourquoi suis-je "jQuery est pas défini" erreur sur les plugins que j'utilise. J'ai essayé toutes les solutions que je reçois de l'internet, mais pas de chance à tous.
Mais, soudain, quelque chose de splash sur mon esprit, que peut-être les fichiers de script doivent être dans l'ordre. Donc, j'ai déplacé le jquery referece à la première position et tout et commencer à travailler comme un charme.
Rappelez-vous les gars, si vous utilisez des plugins jquery, assurez-vous d'utiliser le folloing commande de réglage de la référence à ces champs.
par exemple:
Assurez-vous toujours que vous devez placer le jquery référence à d'abord et puis par la suite les bibliothèques.
Espoir, cela résout votre problème, en particulier lorsque vous utilisez avec MasterPages. Son très étrange que cela fonctionne n'importe quel ordre que vous utilisez lorsque vous ne l'utilisez pas MasterPages mais quand vous le faites, alors c'est en quelque sorte requres le bon ordre.
Bonne chance et amusez-vous bien,
Vincent D'Souza
Regarder Comment faire pour Exécuter une Racine “/”. Cela devrait résoudre tous vos problèmes en suspens concernant
.js
chemins d'accès aux fichiers. En gros, vous reconfigurez le VS Dev serveur pour exécuter votre application en tant quelocalhost:port/
par opposition à la régulièrelocalhost:port/application name/
faire la résolution de nom fonctionne de la même manière que sur IIS.Si cette balise script va directement dans le navigateur, puis peu probable que vous pouvez le remplacer par votre site racine. Au moins pas sur le serveur. Ainsi, vous pouvez:
nom et utiliser des chemins absolus
(solution la plus simple).
lien avec le serveur de contrôle.
de l'envoyer au client (avec
HttpResponse.Le filtre).
Vous pouvez également utiliser <base> balise HTML:
et puis tous les liens dans la section d'en-tête sont relatifs à l'adresse de base:
Il est souvent utile lorsque vous avez plusieurs de publication destinations, comme local dev serveur web, serveur de démonstration, etc. Vous venez de remplacer l'URL de base.
base href
par programmation ?Pour le chemin d'accès absolu du fichier de n'importe quelle page de l'utiliser suivant: