Avatar billede egenfeldt Nybegynder
10. januar 2003 - 22:06 Der er 7 kommentarer

Problemer med stier

Jeg har problemer med at få nedenstående script til at virke, så jeg kan ligge html-siderne, som generes på baggrund af temples ned i en underfolder. Jeg vil gerne have en filstruktur, hvor nedenstående fil(build.asp) ligger i øverste niveau, mens de html-generede sider ligger et niveau længere nede. Den fil der hedder template.htm indeholder template, og ligger i en underfolder som hedder template, og der fungerer fint.

Håber nogle kan hjælpe - på forhånd tak for hjælpen...

Jeg får fejlen i følgende sektion (hele script længere nede):

        'LOOP THROUGH TEMPLATE FILE CONTENT
        '------------------------------------
        Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
        BodytextFile = Server.MapPath(strTemplateLocation & "main/template.htm")
     
      ' Her kommer fejlen Microsoft VBScript-kørselsfejl error '800a004c' . Path not found /game-research/buildpage.asp, line 67

      Set InStream= FileObject.OpenTextFile (BodytextFile, 1, False, False)
        While not InStream.AtEndOfStream
        strPageBaseText = strPageBaseText & InStream.ReadLine & vbcrlf
        Wend
        Set Instream = Nothing




<%
'===============================================
' Page Template Functionality                                 
' ©2001 Cactusoft Ltd. www.cactusoft.com
'===============================================
' You may use the code and functions within this
' template sample application on any web site
' for free providing the comments, copyright
' messages and link to our site are retained.
'
' Queries? Can't promise we can respond to
' everything but try us!
'
'
' mailto:skinsample@cactusoft.com
'===============================================


'-----------------------------------------------
' First we look to read the template location
' from a cookie.
'-----------------------------------------------
strTemplateLocation = request.cookies("templatesample")("templatepath")

'-----------------------------------------------
' If the cookie is blank (i.e. doesn't exist)
' then we set the template to our default one.
'-----------------------------------------------
If request.cookies("templatesample")("templatepath") ="" then
        strTemplateLocation="templates/skin_default/"
        response.cookies("templatesample")("templatepath") =""
End if

'-----------------------------------------------
' For the datastamp, we create a string of HTML
' which we can add into the page later. Any
' other dynamic text that needs to be included
' on each page can be created in this fashion
' and stored as a string of HTML.
'-----------------------------------------------
strDateStampHTML = Ucase(day(now()) & " " & monthname(month(now())) & " " & year(now()))

'-----------------------------------------------
' This function allows us to read the page HTML
' from the template and store it as a string. We
' then adjust the path of images (so that our
' pages on the root using the template link to
' the correct path of the template's image
' folder. Next we replace the special xxx tags
' in the template with the string content such
' as date that we created above. Finally, we
' split the whole page string into a two-box
' array, with the split made around the
' xxxPAGECONTENTxxx tag. The two sections of
' HTML will later be added above and below the
' main content on each front end page.
'-----------------------------------------------

Function ReadFromTemplate(strTemplateLocation,aryPageTemplate,strDateStampHTML)

        '------------------------------------
        'LOOP THROUGH TEMPLATE FILE CONTENT
        '------------------------------------
        Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
        BodytextFile = Server.MapPath(strTemplateLocation & "main/template.htm")
     
      ' Here i get the error Microsoft VBScript-kørselsfejl error '800a004c' . Path not found /game-research/buildpage.asp, line 67

      Set InStream= FileObject.OpenTextFile (BodytextFile, 1, False, False)
        While not InStream.AtEndOfStream
        strPageBaseText = strPageBaseText & InStream.ReadLine & vbcrlf
        Wend
        Set Instream = Nothing

        '------------------------------------
        'FORMAT PAGE HTML STRING
        '------------------------------------
                strPageBaseText = Replace(strPageBaseText,"../images",strTemplateLocation & "images")
                'Fix path to template images
             
                strPageBaseText = Replace(strPageBaseText,"../","")
                'Adjust hyperlinks on template to correct path
             
                strPageBaseText = Replace(strPageBaseText,"xxxDATESTAMPxxx",strDateStampHTML)
                'Add the datestamp to the page by replacing the xxxDATESTAMP tag with the string we created above

                aryPageTemplate = split(strPageBaseText ,"xxxPAGECONTENTxxx",-1)
                'Create a two-box array by splitting the page HTML around the xxxPAGECONTENTxxx tag

        ReadFromTemplate = aryPageTemplate

END Function

%>
Avatar billede egenfeldt Nybegynder
10. januar 2003 - 22:10 #1
Scriptet i sin fulde form kan findes her....
http://www.asp101.com/articles/paul/templating/default.asp
Avatar billede medions Nybegynder
11. januar 2003 - 11:59 #2
Du kan altid finde frem til den rigtige sti ved at udskrive din Path()!

Fx.

Response.Write(Server.MapPath()) -her får du stien frem, hvor du har dit dokument liggende!

og så kan du ellers prøve dig frem til hvor du vil ha' det placeret!

Response.Write(Server.MapPath("/dir1/dir2/dir3"))

-prøv evt. at opret et nyt dokument til at teste med, så du rammer den rigtige folder!

//>Rune
Avatar billede egenfeldt Nybegynder
11. januar 2003 - 13:53 #3
Hmm - ikke sikker på jeg helt er med, hvor skal præcist skrive Server.MapPath i forhold til nedenstående, hvor jeg får fejlen. Ville du skrive en Response.Write(Server.MapPath())lige før fejlen opstår, og kan man i fald sætte Server.MapPath ligefør problemet opstår med at finde filen?

Mvh Simon

Set InStream= FileObject.OpenTextFile (BodytextFile, 1, False, False)
        While not InStream.AtEndOfStream
        strPageBaseText = strPageBaseText & InStream.ReadLine & vbcrlf
        Wend
        Set Instream = Nothing
Avatar billede medions Nybegynder
11. januar 2003 - 15:21 #4
Nej, prøv sådan her:




<%
'===============================================
' Page Template Functionality                                 
' ©2001 Cactusoft Ltd. www.cactusoft.com
'===============================================
' You may use the code and functions within this
' template sample application on any web site
' for free providing the comments, copyright
' messages and link to our site are retained.
'
' Queries? Can't promise we can respond to
' everything but try us!
'
'
' mailto:skinsample@cactusoft.com
'===============================================


'-----------------------------------------------
' First we look to read the template location
' from a cookie.
'-----------------------------------------------
strTemplateLocation = request.cookies("templatesample")("templatepath")

'-----------------------------------------------
' If the cookie is blank (i.e. doesn't exist)
' then we set the template to our default one.
'-----------------------------------------------
If request.cookies("templatesample")("templatepath") ="" then
        strTemplateLocation="templates/skin_default/"
        response.cookies("templatesample")("templatepath") =""
End if

'-----------------------------------------------
' For the datastamp, we create a string of HTML
' which we can add into the page later. Any
' other dynamic text that needs to be included
' on each page can be created in this fashion
' and stored as a string of HTML.
'-----------------------------------------------
strDateStampHTML = Ucase(day(now()) & " " & monthname(month(now())) & " " & year(now()))

'-----------------------------------------------
' This function allows us to read the page HTML
' from the template and store it as a string. We
' then adjust the path of images (so that our
' pages on the root using the template link to
' the correct path of the template's image
' folder. Next we replace the special xxx tags
' in the template with the string content such
' as date that we created above. Finally, we
' split the whole page string into a two-box
' array, with the split made around the
' xxxPAGECONTENTxxx tag. The two sections of
' HTML will later be added above and below the
' main content on each front end page.
'-----------------------------------------------

Function ReadFromTemplate(strTemplateLocation,aryPageTemplate,strDateStampHTML)

        '------------------------------------
        'LOOP THROUGH TEMPLATE FILE CONTENT
        '------------------------------------

Response.Write(Server.MapPath(strTemplateLocation & "main/template.htm"))
Response.End()
        Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
        BodytextFile = Server.MapPath(strTemplateLocation & "main/template.htm")
     
      ' Here i get the error Microsoft VBScript-kørselsfejl error '800a004c' . Path not found /game-research/buildpage.asp, line 67

      Set InStream= FileObject.OpenTextFile (BodytextFile, 1, False, False)
        While not InStream.AtEndOfStream
        strPageBaseText = strPageBaseText & InStream.ReadLine & vbcrlf
        Wend
        Set Instream = Nothing

        '------------------------------------
        'FORMAT PAGE HTML STRING
        '------------------------------------
                strPageBaseText = Replace(strPageBaseText,"../images",strTemplateLocation & "images")
                'Fix path to template images
             
                strPageBaseText = Replace(strPageBaseText,"../","")
                'Adjust hyperlinks on template to correct path
             
                strPageBaseText = Replace(strPageBaseText,"xxxDATESTAMPxxx",strDateStampHTML)
                'Add the datestamp to the page by replacing the xxxDATESTAMP tag with the string we created above

                aryPageTemplate = split(strPageBaseText ,"xxxPAGECONTENTxxx",-1)
                'Create a two-box array by splitting the page HTML around the xxxPAGECONTENTxxx tag

        ReadFromTemplate = aryPageTemplate

END Function

%>

//>Rune
Avatar billede egenfeldt Nybegynder
11. januar 2003 - 16:05 #5
Hmm - tror vidst jeg har været uklart.. Det er ikke med selve templates placering, jeg har problemer.. det tror jeg i hvert fald ikke... det er selve der hvor artiklerne ligger... templates placering styrer den fint nok.

Filstrukturen for scriptet er normalt:
Buildpage.asp
articlex
articlex2
articlex3

Niveauet under:
Templates/xxx

jeg vil gerne have articles ned i en seperat mappe dvs. de sider som bruges til at genere den endelige side ved at bygge dem ind i template.


Den funktion du giver, følgende udskrift...  c:\pws\game-research\interface\articles\templates\skin_default\main\template.htm

Men det er stien til template.. den fandt den okay..

Jeg har lagt hele skidtet op på www.game-research.com/temp/interface/add_article.htm .. det er kun show_articles linket som jeg indtil videre prøver at få til at virke.

Håber ikke, det er helt håbløst.. jeg er ikke meget inde i VBscript...

Mvh Simon
Avatar billede medions Nybegynder
11. januar 2003 - 16:22 #6
Jeg er ked af at måtte melde fra.. Jeg kan ik' rigtig sætte mig ind i dit script, og det du skriver... :-/

Sorry...

//>Rune
Avatar billede egenfeldt Nybegynder
11. januar 2003 - 16:29 #7
Tak for hjælpen, alligevel - det er også lidt rodet, mit script.

Mvh Simon
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester