2010-02-12 21 views
3

Comment puis-je utiliser le côté serveur comprend un module dans IIS pour inclure et traiter un fichier ColdFusion à partir d'un fichier .htm? Je suis en train de faire quelque chose comme ça dans mon fichier html:IIS Server Side Includes ne traite pas ColdFusion

<!--#include virtual="navmenu.cfm"--> 

Cela inclut le contenu brut du fichier navmenu. J'ai besoin pour exécuter le code ColdFusion et retourner la sortie de ce processus plutôt que d'inclure le code de ColdFusion brut .

Cette même syntaxe fonctionne correctement dans Apache.

+0

Si l'extension de fichier de premier niveau est .html - ColdFusion ne traitera pas le contenu du fichier .cfm – kevink

Répondre

2

Si vous ne pouvez pas faire en sorte que la première page semble être une cfm vers l'extérieur, avez-vous pensé à utiliser le URL Rewrite Module for IIS? De cette façon, vous pourriez juste faire certains fichiers cfms avec des règles de réécriture de cfm htm explicites mais laisser tous les autres non traités. Au-delà de cela, je pense qu'il n'y a peut-être pas de réponse élégante puisque vous mélangez du contenu statique et dynamique.

Sur vos commentaires sur ajax - personnellement, je ne trouve rien sur l'utilisation fastidieuse ajax mais encore une fois butin jquery vous ...

<div id='menuhere'></div> 

$.get('navmenu.cfm', function(data) {$('.menuhere').html(data); }); 

accomplit la même chose que le SSI plus (en supposant jQuery est mis en cache) vous obtenez des chargements de page de contenu principal plus rapides pour démarrer.

+0

J'ai fini par aller avec cette solution car c'était le moyen le plus rapide d'accomplir ce dont j'avais besoin. Ce n'est pas la meilleure solution pour moi parce que le html ColdFusion que je charge est la navigation de la page. Pour les autres, s'il vous plaît noter que le gros inconvénient de cette solution est qu'aucun moteur de recherche n'aura accès à tout ce qui est inclus via ajax, qui dans ce cas est ma navigation. – dadwithkids

0

Si vous utilisez une page Coldfusion est:

<cfinclude template="navmenu.cfm"> 

Si vous utilisez un autre type de page que vous aurez besoin de mettre ce contenu dans un IFRAME

<iframe src="navmenu.cfm"></iframe> 

La question est de savoir si vous avez la technologie Coldfusion disponible sur le serveur, pourquoi ne pas changer cette page en une page .cfm et utiliser l'exemple ci-dessus?

+0

Je n'ai pas pu être clair. Le fichier qui doit faire l'inclusion est un fichier .htm, qui nécessite la syntaxe #include et le module SSI (je viens de modifier la question pour mieux refléter cela). Votre réponse fonctionnerait bien si le fichier de base était ColdFusion. – dadwithkids

4

Êtes-vous juste essayer d'éviter l'extension du CFM dans l'URL?

Vous ne pouvez pas utiliser SSI pour inclure un fichier CFM dans un fichier HTM statique. Vous pouvez configurer IIS pour envoyer des fichiers HTM au serveur CF à analyser. Cela vous permettrait d'utiliser CFINCLUDE dans n'importe quel fichier HTM.

Alternativement, vous pouvez utiliser ajax à partir de votre fichier HTM et charger le contenu CFM analysé dans un DIV.

+0

Je voudrais seconder ceci. Envoyez le fichier HTM à CF et utilisez un cfinclude normal. Alternativement AJAX, puisque SSI va juste "copier/coller" le code dans le fichier, ce qui signifie qu'il va sortir comme code source et ne pas être traité. –

+0

Je suis en train de convertir un serveur linux/apache vers un serveur windows/iis. Avoir le serveur CF analyser tous les fichiers .htm n'est pas vraiment une option viable pour nous. L'option ajax serait quelque peu fastidieuse à implémenter. Est-il vraiment impossible de faire le traitement équivalent dans IIS? – dadwithkids

+0

Pas aussi loin que je le sais. Je suis plus à l'aise avec Apache qu'avec IIS, mais si je comprends bien, avoir IIS envoyer des fichiers HTM sur le serveur CF n'est pas très difficile. En fait, afin que le serveur CF ne traite pas tous ces fichiers HTM statiques, je connais beaucoup de développeurs qui n'ont que des processus IIS.Fichiers HTML afin qu'ils puissent avoir une extension non-CFM qui peut toujours être dynamique. Voici des instructions pour que le serveur CF analyse l'externalisation HTML avec ou sans configuration d'IIS: http://www.pbell.com/index.cfm/2007/3/31/Processing-html-files-using-ColdFusion--on -a-Mac-ou-un-PC –