我在论坛中的新人和我的西班牙语...抱歉我的英语水平很低......
我在我的项目中使用Codeigniter和twig引擎,但我遇到了一些问题......
当我使用时:
<link rel="stylesheet" href="{{ asset('assets/css/bootstrap.min.css') }}">
Codeigniter抛出异常。它说:
功能&#34;资产&#34;不存在。你是说&#34;断言&#34; in&#34; index.html.twig&#34;在第12行---#0 /volume1/web/ci/application/libraries/Twig/ExpressionParser.php(351):Twig_ExpressionParser-&gt; getFunctionNodeClass(&#39; asset&#39;,12)#1 / volume1 / web / ci / application / libraries / Twig / ExpressionParser.php(144):Twig_ExpressionParser-&gt; getFunctionNode(&#39; asset&#39;,12)#2 / volume1 / web / ci / application / libraries / Twig / ExpressionParser .php(84):Twig_ExpressionParser-&gt; parsePrimaryExpression()#3 /volume1/web/ci/application/libraries/Twig/ExpressionParser.php(41):Twig_ExpressionParser-&gt; getPrimary()#4 / volume1 / web / ci /application/libraries/Twig/Parser.php(141):Twig_ExpressionParser-&gt; parseExpression()#5 /volume1/web/ci/application/libraries/Twig/TokenParser/Block.php(45):Twig_Parser-&gt; subparse (Array,true)#6 /volume1/web/ci/application/libraries/Twig/Parser.php(187):Twig_TokenParser_Block-&gt; parse(Object(Twig_Token))#7 / volume1 / web / ci / application / libraries /Twig/Parser.php(95):Twig_Parser-&gt; subparse(NULL,false)#8 / volume1 / web / ci / application / libraries /Twig/Environment.php(543):Twig_Parser-&gt; parse(Object(Twig_TokenStream))#9 /volume1/web/ci/application/libraries/Twig/Environment.php(595):Twig_Environment-&gt; parse(Object (Twig_TokenStream))#10 /volume1/web/ci/application/libraries/Twig/Environment.php(335):Twig_Environment-&gt; compileSource(&#39; ...&#39;,&#39; index。 html.twig&#39;)#11 /volume1/web/ci/application/libraries/Twig.php(90):Twig_Environment-&gt; loadTemplate(&#39; index.html.twig&#39;)#12 / volume1 /web/ci/application/controllers/welcome.php(15):Twig-&gt; display(&#39; index.html.twig&#39;,Array)#13 [内部函数]:Welcome-&gt; index( )#14 /volume1/web/ci/system/core/CodeIgniter.php(360):call_user_func_array(Array,Array)#15 /volume1/web/ci/index.php(202):require_once(' / volume1 / web / ci ...&#39;)#16 {main}
还会为任何函数twig抛出异常
有什么问题?
谢谢!
修改
好的,我还没有解决我的问题,功能不存在,但我必须包括我的css和js文件,还要使用twig。问题出在我的.htaccess文件上(该文件位于我服务器的根目录下)。该文件写道:
RewriteEngine on
RewriteCond $1 !^(index.php|css|js|images|robots.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]
所以我在&#34; /ci/assets/.htaccess"上创建了另一个.htaccess文件。使用此代码:
RewriteEngine off
RewriteCond $1 !^(index.php|css|js|images|robots.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]
我不知道这是否是最好的方式,但这对我有效,我可以正常工作。
任何消化?
答案 0 :(得分:0)
您需要内容为asset()函数的帮助文件。 但也许你有一个错字:
<link rel="stylesheet" href="{{ assert('assets/css/bootstrap.min.css') }}">
答案 1 :(得分:0)
asset()
参与了Symfony2项目,而不是Twig项目。
您应首先在codeigniter中创建此功能。
1)在您的自定义Twig库中,添加以下行:
$this->_twig_env->addFunction(
new Twig_SimpleFunction('asset', 'asset',
array('is_safe' => array('html')))
);
2)在你的助手中,添加以下功能(将assets/
替换为你的资产的路径,这里我假设你的图像,js,......在assets/images
中可用,{{1 },assets/js
)。
assets/...
答案 2 :(得分:0)
您可能想要添加一个过滤器,例如用法如下
Link rel="stylesheet" href="{{ 'assets/css/bootstrap.min.css' | asset }}">
要实现上述目标,您可能需要扩展twig过滤器类并添加过滤器。
requrie_once("path of Twig_Extension class); // update this
use Twig_Extension;
use Twig_Filter_Method;
class customExtension extends Twig_Extension
{
/**
* Returns the name of the extension.
*
* @return string The extension name
*/
function getName()
{
return "customExtension";
}
public function getFilters()
{
return array(
'asset' => new Twig_Filter_Method($this,'twig_asset_filter'),
);
}
/**
* @param $path
*
* @return string
*/
function twig_asset_filter($path)
{
return 'assets/'.$path;
}
之后你可以用同样的方式使用它 - 这个扩展已经写好了,可以通过作曲家访问..
点击此链接https://github.com/iddigitalagency/Codeigniter-twig-twigextensions