我一直在寻找一种使用Laravel的Blade模板引擎处理非PHP文件扩展名的方法(而不是使用file_name.blade.php
,可以使用file_name.blade.js
或file_name.blade.css
),但一直未能找到。我找到了一个 帖子 ,看起来描述了如何在Laravel 4中实现此功能,但似乎在Laravel 5中不再适用。我想这么做的原因是我有一个类似于以下内容的JavaScript文件:
//JS stuff
@foreach($Model->Values as $Value)
{{ $Value->name . " = " . $Value->content . ";"}}
@endforeach
//More JS stuff
还有一个看起来像这样的blade/php文件:
//Blade stuff
<script type="text/javascript">
@include('js');
</script>
这似乎是将每个值传递给JavaScript的最好方法。即使有更好的方法将这些值传递给JavaScript,提出这个问题的原因是想找到一种使用Blade解析非PHP文件的方法,我认为这可能会非常有用。
View::addExtension('blade.js', 'blade')
在 L5 中也能工作。该方法并没有改变。但请注意,您需要使用 Blade 引擎,而不是像您链接的帖子中的 HTML 引擎。至于放在哪里是一个好问题,您提到您的两个文件在扩展名之前具有相同的名称 - 这可能会导致出现问题。 - Joel Hinz