2013-01-18 6 views
6

Prolog HTTPサーバーをポート9000でlocalhostにバインドした場合、Prologで画像の正しいパスを生成させるにはどうすればよいですか? 「extは」拡張子の略Prologによって動的に表示されるHTMLページにイメージを含めるには?

<img src="C:\Users\Luka\\Desktop\ImageName.ext"/>、:私の.plファイルと.jpgまたは.pngファイルがデスクトップに置かれた場合、どのように私は、サーバーは、このようなコードを生成作るのですか。私はSWI-Prologとthis tutorialのドキュメントを見てきましたが、抽象的なパスはすべて非常に混乱しています。私はWebサーバーに関する多くの経験を持っていますが、これはかなり異なっており、私はそれを理解するのにひどい問題を抱えています。ここで

はSWI-Prologのドキュメントと、上記のチュートリアルで私が学んだこと(あるいは、少なくとも私は私が持っていると思う)何で構成され、私の試みです:

:- use_module(library(http/thread_httpd)). 
:- use_module(library(http/http_dispatch)). 
:- use_module(library(http/http_parameters)). 
:- use_module(library(http/html_write)). 
file_search_path('*', 'C:\\Users\\Luka\\Desktop\\'). 

server(Port) :- 
    http_server(http_dispatch, [port(Port)]). 

:- http_handler(root(.), render_base, []). 
:- http_handler('/form', process_form, []). 

process_form(Request) :- 
    http_parameters(Request, 
      [name(Name,[atom])]), 
      reply_html_page('Posted data: ',['',Name]). 

render_base(_Request) :- 
    reply_html_page(
     title('Naslov'), 
     img([src='/image.png', alt='Incident']) 
    ). 

おかげで再び事前にあなたの大きな忍耐です。 :-)

答えて

7

あなたの問題を解決するのは簡単ではないことは事実です。慎重にthis「方法」ページ、セクションServing many 'server support' filesをお読みください。ここで

は、私がテストしたコードは次のとおりです。

http:location(images, root(images), []). 
user:file_search_path(icons, '/home/carlo/prolog'). 
:- http_handler(images(.), serve_files_in_directory(icons), [prefix]). 

とリソース

intro --> 
    html([p(ol([li('select a path'), 
      li('scan resources from it'), 
      li('RDF-ize them'), 
      li('browse with foldable SVG') 
      ])), 
      \sep, 
      'png before', img(src='images/swipl.png'), 'png after', 
      \sep, 
      'jpeg before', img(src='/images/swipl.jpeg'), 'jpeg after' 
     ]). 

は、私が仕様img(src='images/swipl.png')img(src='/images/swipl.jpeg')仕事を、そしてこの「機能」寄与し、両方のことに注意していることを使用するHTMLインタフェースの振る舞いをぼかす。ここで

出力

enter image description here

HTH

+0

これはcssファイルとjsファイルで機能しますか? –

1

はプロローグサーバが実際にサーバではなく、プラグインのapacheにあることを覚えておいてください。 これは、プロローグに画像を提供する必要があることを意味します。もちろん、あなたのWebサーバーに静的ファイルを送ることは非常に便利です。そのため、Carloの例は実際にはイメージディレクトリとhtmlの両方を提供しています。

関連する問題