问题描述
我正在使用 Blade 语法和 Laravel 资产链接在刀片 @section
中添加一个 JS 文件,但 PHPStorm 将其标记为“属性值未关闭”,并在下面显示的位置使用红色波浪线。它不识别 'src'
元素已关闭,因此代码着色也是错误的。
<script type='text/javascript' src='{{ asset("js/dashboard.js") }}'></script>
~ ~
我知道我可以在设置中关闭错误检查,但是代码颜色仍然是错误的,所以不能解决问题。
解决方法
自 2020.2 起,PhpStorm 将 JavaScript 语言注入具有 javascript
名称的 Blade 部分,并将 CSS 注入到 css
部分。
基本上:@section('javascript)
和结束 @endsection
之间的所有内容都被视为 JavaScript。与 CSS 类似。当用户想要编写纯 JS 或 CSS 时,这是该部分的常用名称。如您所知,<script>
标记是 HTML 而不是实际的 JavaScript,因此会出现错误。
它是根据用户需求完成的(如果我没记错的话,WI-29254)并且其他支持的模板系统也存在类似的东西:Twig 和 Smarty。
有两种方法可以解决此问题:
-
推荐 -- 只需为这些部分使用更合适的名称:
scripts
和styles
并在编写实际 JS 时使用javascript
(如如果您已经在<script>
标签内)。由于这样的块名称在很多项目中经常使用,所以以后当你使用别人的代码时会更容易处理它们。
-
如果您不能(或不想)更改名称(旧项目/不是您的代码等/“我使用任何我想要的块名称”),您可以禁用这些注入。注意:这将影响整个 IDE(其他项目),因为它是捆绑规则(当然,除非您为该其他项目制定自定义规则)。
为此,只需转到
Settings/Preferences | Editor | Language Injections | Editor | Language Injections
并禁用 Blade 的 2 个捆绑规则: