Configure pathes to templates on release

8 views
Skip to first unread message

Anton Prokofiev

unread,
May 10, 2017, 6:07:18 PM5/10/17
to Nitrogen Project / The Nitrogen Web Framework for Erlang
Hello, All

I have been running nitrogen in "embedded" mode for my application.
(template files are located  in /priv/static and /priv/template

Now I try to make a release, so
my application will be in
  /lib/my_app-1.0.0/priv/ ....

So when I start release and go to localhost:8083

In my simple_bridge.config   {document_root, "./priv/static"},

I got following error message:

error:function_clause
--------------------------
[{element_template,eval,
                   [undefined,
                    {template,is_element,element_template,".wfid_temp13",
                              ".wfid_temp13",undefined,true,
                              [".wfid_temp13",[]],
                              [],[],[],[],"./priv/templates/main.html",[],
                              [{'PageTitle',<<"Home">>}]},
                    [{page,index}]],
                   [{file,"src/elements/layout/element_template.erl"},
                    {line,153}]},
 {wf_render_elements,call_element_render,3,
                     [{file,"src/lib/wf_render_elements.erl"},{line,150}]},
 {wf_render_elements,prepare_and_render,3,
                     [{file,"src/lib/wf_render_elements.erl"},{line,119}]},
 {wf_render_elements,render_elements,1,
                     [{file,"src/lib/wf_render_elements.erl"},{line,33}]},
 {wf_core,maybe_render_elements,1,[{file,"src/wf_core.erl"},{line,127}]},
 {wf_core,finish_dynamic_request,0,[{file,"src/wf_core.erl"},{line,101}]},
 {wf_core,run,0,[{file,"src/wf_core.erl"},{line,23}]},
 {cowboy_simple_bridge_anchor,handle,2,
                              [{file,"src/cowboy_bridge_modules/cowboy_simple_bridge_anchor.erl"},
                               {line,34}]}]


Any idea how to change parameters in simple_bridge.config?


Regards, Anton


Anton Prokofiev

unread,
May 16, 2017, 7:41:39 AM5/16/17
to Nitrogen Project / The Nitrogen Web Framework for Erlang

FIXED.

The problem was following:

I have following code in my page modules:
main() ->
        #template { file="./priv/templates/template.html"),
        bindings=[{'PageTitle',<<"Test Page">>}]}.


This is working fine when you start application locally, i.o. we have the following structure:
MyApp/
  deps/
  ebin/
  priv/
  rel/
  src/
 ...


When it is start as a part of the release, it cannot find the path related to the working dir, that is
RELAPP/
 bin/
 lib/
    myapp/
         priv

 ...

So, just wrap it to the function call
 main() ->
        #template { file= myapp_util:get_template_fn("template.html"),
        bindings=[{'PageTitle',<<"test">>}]}.


Probably there should be way to set this paths related to the document_root folder.
Reply all
Reply to author
Forward
0 new messages