use*_*233 4 javascript perl jquery mojo mojolicious
我目前正在努力清理一个我用Mojolicious写的小网页应用程序.作为清理的一部分,我将我的javascript从html.ep文件中分离到公共目录中.
我遇到的问题是我似乎无法再引用标记助手,例如'url_for'或甚至引用存储中的值,例如'<%$ stashvalue%>'.
关于如何或如果我能做到这一点的任何想法非常感谢.
干杯.
在东西public
目录静态地提供,优化您的网络服务器,而不是Mojolicious
或普拉克,所以该文件没有得到通过处理Mojolicious
,因此<% $stashvalue %>
不意味着任何东西.
一个解决方案是嵌入需要访问mojo模板中的服务器端变量的javascript部分 - 相当难看,但编写的代码较少.
另一个是从你的javascript文件加载时调用ajax调用,并获取服务器发送的值 - 更优雅,但需要编写更多代码.
我能想到的另一个,就是将这些javascript文件移动到一个文件夹下,Mojolicious
并将其包含参数化 - 在你html.ep
需要js文件的文件中,执行:
<script type="text/javascript" src="http://example.com/url/served/by/mojo/?param1=<% $stashvalue %>¶m2=<% $stashvalue2 %>"></script>
Run Code Online (Sandbox Code Playgroud)
并且,在响应的控制器中/url/served/by/mojo/
,呈现该js文件,其中params被查询中的params替换.作为替代方案,您也可以存储/接收这些参数session
通常在Perl中,有不止一种方法可以做到这一点.