资产文件不存在错误,即使不再引用文件?
Assetic file does not exist error, even though no reference to file anymore?
我有一个名为 main.less 的文件,是我过去创建的。我删除了它,因为我不再需要它,但是现在我尝试 运行 bin/console assetic:watch
时出现以下错误
[error] The source file "/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less" does not exist.
或bin/console assetic:dump
,无论使用的环境如何。
[RuntimeException]
The source file "/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less" does not exist.
在我这样做之前,我当前的例程是创建一个 shell 脚本文件,其中 运行 包含以下命令:
chown -R distribution:distribution .
rm -rf var/cache/dev/*
rm -rf var/cache/prod/*
rm -rf web/css/*
rm -rf web/js/*
bin/console cache:clear --env=dev
bin/console cache:clear --env=prod --no-debug
bin/console assets:install web --symlink --relative
bin/console assetic:dump --env=dev --verbose
bin/console assetic:dump --env=prod --no-debug
bin/console assetic:watch
bin/console doctrine:schema:update --force --dump-sql
bin/console doctrine:schema:update --force --dump-sql --env=prod
chown -R distribution:distribution .
bin/console server:run
我总是运行它作为 root 以确保一切正常,文件由用户分发拥有。
唯一引用 less 和 javascript 文件的文件是...
base.html.twig
{% spaceless %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}
{% stylesheets 'bundles/skeleton/less/main.less' filter='less' filter='uglifycss' filter='cssrewrite' output='css/compiled-main.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
</head>
<body>
{% block body %}{% endblock %}
{% block javascripts %}
{% javascripts
'@SkeletonBundle/Resources/public/js/*'
'@AppBundle/Resources/public/js/*'
filter='uglifyjs2'
output='js/js-compiled.js'
%}
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<script src="{{ asset_url }}"</script>
{% endjavascripts %}
{% endblock %}
</body>
</html>
{% endspaceless %}
我的目录结构如下所示,直接来自 FTP
您会注意到 main.less 现在位于骨架包中,而不是应用程序包中。我把它移到了这里,但出于某种原因它认为它仍在应用程序包中而不是框架包中??
如何解决这个错误?
额外信息:
当我 运行 详细跟踪错误时,我用 asset:dump
得到了这个
Dumping all dev assets.
Debug mode is on.
03:37:43 [file+] /home/distribution/public_html/distribution.tech/app/../web/css/compiled-main.css
/home/distribution/public_html/distribution.tech/app/../web/bundles/skeleton/less/main.less
03:37:43 [file+] /home/distribution/public_html/distribution.tech/app/../web/css/compiled-main_main_1.css
/home/distribution/public_html/distribution.tech/app/../web/bundles/skeleton/less/main.less
03:37:44 [file+] /home/distribution/public_html/distribution.tech/app/../web/js/js-compiled.js
/home/distribution/public_html/distribution.tech/src/SkeletonBundle/Resources/public/js/shared.js
/home/distribution/public_html/distribution.tech/src/AppBundle/Resources/public/js/app.js
03:37:44 [file+] /home/distribution/public_html/distribution.tech/app/../web/js/js-compiled_part_1_shared_1.js
/home/distribution/public_html/distribution.tech/src/SkeletonBundle/Resources/public/js/shared.js
03:37:45 [file+] /home/distribution/public_html/distribution.tech/app/../web/js/js-compiled_part_2_app_1.js
/home/distribution/public_html/distribution.tech/src/AppBundle/Resources/public/js/app.js
03:37:45 [file+] /home/distribution/public_html/distribution.tech/app/../web/css/compiled-main.css
/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less
[RuntimeException]
The source file "/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less" does not exist.
Exception trace:
() at /home/distribution/public_html/distribution.tech/vendor/kriswallsmith/assetic/src/Assetic/Asset/FileAsset.php:62
Assetic\Asset\FileAsset->load() at /home/distribution/public_html/distribution.tech/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php:103
Assetic\Asset\BaseAsset->dump() at /home/distribution/public_html/distribution.tech/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollection.php:151
Assetic\Asset\AssetCollection->dump() at /home/distribution/public_html/distribution.tech/vendor/symfony/assetic-bundle/Command/AbstractCommand.php:119
Symfony\Bundle\AsseticBundle\Command\AbstractCommand->doDump() at /home/distribution/public_html/distribution.tech/vendor/symfony/assetic-bundle/Command/AbstractCommand.php:51
Symfony\Bundle\AsseticBundle\Command\AbstractCommand->dumpAsset() at /home/distribution/public_html/distribution.tech/vendor/symfony/assetic-bundle/Command/DumpCommand.php:118
Symfony\Bundle\AsseticBundle\Command\DumpCommand->execute() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:256
Symfony\Component\Console\Command\Command->run() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:803
Symfony\Component\Console\Application->doRunCommand() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:186
Symfony\Component\Console\Application->doRun() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:86
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:117
Symfony\Component\Console\Application->run() at /home/distribution/public_html/distribution.tech/bin/console:29
assetic:dump [--forks FORKS] [--watch] [--force] [--period PERIOD] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<write_to>]
Config.yml 资产设置:
assetic:
debug: '%kernel.debug%'
use_controller: '%kernel.debug%'
filters:
cssrewrite: ~
uglifyjs2:
# the path to the uglifyjs executable
bin: /usr/bin/uglifyjs
uglifycss:
bin: /usr/bin/uglifycss
less:
node_paths: [/usr/local/lib/node_modules/]
bin: /usr/bin/less
Main.less 骨架束
/* Global Variables */
@logo: "../images/logo-hires-opt.png";
/* Fonts */
@font-face {
font-family: 'ProximaNova';
src: url('../fonts/proximanova-regular-webfont.ttf');
}
@font-face {
font-family: 'ProximaNovaAltBold';
src: url('../fonts/proxima_nova_alt_bold-webfont.ttf');
}
.withfont{font-family:ProximaNova;color:blue;background:url('../images/background.jpg');}
@import "shared.less";
@import "header.less";
@import "footer.less";
Admin.less appBundle 中的文件
.test{color:red}
admin.html.twig
{% extends 'SkeletonBundle::base.html.twig' %}
{% block body %}
<div id="wrapper">
<div id="container">
<div class="withfont">admin page</div>
<div>admin page without <span class="test">fonts</span></div>
</div>
</div>
{% endblock %}
好吧,事实证明我的编辑器有一个旧版本对 base.html.twig
开放,它引用了旧位置,所以当它去渲染时找不到它......我不确定如何我没有注意到这一点,但错误确实与实际不存在的文件有关。
错误在此命令中
{% stylesheets 'bundles/skeleton/less/main.less' filter='less' filter='uglifycss' filter='cssrewrite' output='css/compiled-main.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
奇怪的是,我发誓我删除了旧的 base.html.twig,但在做了一些调整后它神奇地 re-appeared,我认为这与我的编辑器有关,以及它如何保存,因为我四处移动文件并同时打开编辑器。
在我的情况下,有必要清除缓存...
php bin/console cache:clear --env=dev
我在 phpstorm 的整个项目 ctrl+shift+f
中搜索此文件名(作为字符串),他在缓存目录中的某处找到了文件...也许如果您从缓存文件中删除行就足够了。 .. 但清除所有缓存我的情况 100% 成功
我有一个名为 main.less 的文件,是我过去创建的。我删除了它,因为我不再需要它,但是现在我尝试 运行 bin/console assetic:watch
[error] The source file "/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less" does not exist.
或bin/console assetic:dump
,无论使用的环境如何。
[RuntimeException]
The source file "/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less" does not exist.
在我这样做之前,我当前的例程是创建一个 shell 脚本文件,其中 运行 包含以下命令:
chown -R distribution:distribution .
rm -rf var/cache/dev/*
rm -rf var/cache/prod/*
rm -rf web/css/*
rm -rf web/js/*
bin/console cache:clear --env=dev
bin/console cache:clear --env=prod --no-debug
bin/console assets:install web --symlink --relative
bin/console assetic:dump --env=dev --verbose
bin/console assetic:dump --env=prod --no-debug
bin/console assetic:watch
bin/console doctrine:schema:update --force --dump-sql
bin/console doctrine:schema:update --force --dump-sql --env=prod
chown -R distribution:distribution .
bin/console server:run
我总是运行它作为 root 以确保一切正常,文件由用户分发拥有。
唯一引用 less 和 javascript 文件的文件是...
base.html.twig
{% spaceless %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}
{% stylesheets 'bundles/skeleton/less/main.less' filter='less' filter='uglifycss' filter='cssrewrite' output='css/compiled-main.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
</head>
<body>
{% block body %}{% endblock %}
{% block javascripts %}
{% javascripts
'@SkeletonBundle/Resources/public/js/*'
'@AppBundle/Resources/public/js/*'
filter='uglifyjs2'
output='js/js-compiled.js'
%}
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<script src="{{ asset_url }}"</script>
{% endjavascripts %}
{% endblock %}
</body>
</html>
{% endspaceless %}
我的目录结构如下所示,直接来自 FTP
您会注意到 main.less 现在位于骨架包中,而不是应用程序包中。我把它移到了这里,但出于某种原因它认为它仍在应用程序包中而不是框架包中??
如何解决这个错误?
额外信息:
当我 运行 详细跟踪错误时,我用 asset:dump
得到了这个Dumping all dev assets.
Debug mode is on.
03:37:43 [file+] /home/distribution/public_html/distribution.tech/app/../web/css/compiled-main.css
/home/distribution/public_html/distribution.tech/app/../web/bundles/skeleton/less/main.less
03:37:43 [file+] /home/distribution/public_html/distribution.tech/app/../web/css/compiled-main_main_1.css
/home/distribution/public_html/distribution.tech/app/../web/bundles/skeleton/less/main.less
03:37:44 [file+] /home/distribution/public_html/distribution.tech/app/../web/js/js-compiled.js
/home/distribution/public_html/distribution.tech/src/SkeletonBundle/Resources/public/js/shared.js
/home/distribution/public_html/distribution.tech/src/AppBundle/Resources/public/js/app.js
03:37:44 [file+] /home/distribution/public_html/distribution.tech/app/../web/js/js-compiled_part_1_shared_1.js
/home/distribution/public_html/distribution.tech/src/SkeletonBundle/Resources/public/js/shared.js
03:37:45 [file+] /home/distribution/public_html/distribution.tech/app/../web/js/js-compiled_part_2_app_1.js
/home/distribution/public_html/distribution.tech/src/AppBundle/Resources/public/js/app.js
03:37:45 [file+] /home/distribution/public_html/distribution.tech/app/../web/css/compiled-main.css
/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less
[RuntimeException]
The source file "/home/distribution/public_html/distribution.tech/app/../web/bundles/app/less/main.less" does not exist.
Exception trace:
() at /home/distribution/public_html/distribution.tech/vendor/kriswallsmith/assetic/src/Assetic/Asset/FileAsset.php:62
Assetic\Asset\FileAsset->load() at /home/distribution/public_html/distribution.tech/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php:103
Assetic\Asset\BaseAsset->dump() at /home/distribution/public_html/distribution.tech/vendor/kriswallsmith/assetic/src/Assetic/Asset/AssetCollection.php:151
Assetic\Asset\AssetCollection->dump() at /home/distribution/public_html/distribution.tech/vendor/symfony/assetic-bundle/Command/AbstractCommand.php:119
Symfony\Bundle\AsseticBundle\Command\AbstractCommand->doDump() at /home/distribution/public_html/distribution.tech/vendor/symfony/assetic-bundle/Command/AbstractCommand.php:51
Symfony\Bundle\AsseticBundle\Command\AbstractCommand->dumpAsset() at /home/distribution/public_html/distribution.tech/vendor/symfony/assetic-bundle/Command/DumpCommand.php:118
Symfony\Bundle\AsseticBundle\Command\DumpCommand->execute() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:256
Symfony\Component\Console\Command\Command->run() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:803
Symfony\Component\Console\Application->doRunCommand() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:186
Symfony\Component\Console\Application->doRun() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:86
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/distribution/public_html/distribution.tech/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:117
Symfony\Component\Console\Application->run() at /home/distribution/public_html/distribution.tech/bin/console:29
assetic:dump [--forks FORKS] [--watch] [--force] [--period PERIOD] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<write_to>]
Config.yml 资产设置:
assetic:
debug: '%kernel.debug%'
use_controller: '%kernel.debug%'
filters:
cssrewrite: ~
uglifyjs2:
# the path to the uglifyjs executable
bin: /usr/bin/uglifyjs
uglifycss:
bin: /usr/bin/uglifycss
less:
node_paths: [/usr/local/lib/node_modules/]
bin: /usr/bin/less
Main.less 骨架束
/* Global Variables */
@logo: "../images/logo-hires-opt.png";
/* Fonts */
@font-face {
font-family: 'ProximaNova';
src: url('../fonts/proximanova-regular-webfont.ttf');
}
@font-face {
font-family: 'ProximaNovaAltBold';
src: url('../fonts/proxima_nova_alt_bold-webfont.ttf');
}
.withfont{font-family:ProximaNova;color:blue;background:url('../images/background.jpg');}
@import "shared.less";
@import "header.less";
@import "footer.less";
Admin.less appBundle 中的文件
.test{color:red}
admin.html.twig
{% extends 'SkeletonBundle::base.html.twig' %}
{% block body %}
<div id="wrapper">
<div id="container">
<div class="withfont">admin page</div>
<div>admin page without <span class="test">fonts</span></div>
</div>
</div>
{% endblock %}
好吧,事实证明我的编辑器有一个旧版本对 base.html.twig
开放,它引用了旧位置,所以当它去渲染时找不到它......我不确定如何我没有注意到这一点,但错误确实与实际不存在的文件有关。
错误在此命令中
{% stylesheets 'bundles/skeleton/less/main.less' filter='less' filter='uglifycss' filter='cssrewrite' output='css/compiled-main.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
奇怪的是,我发誓我删除了旧的 base.html.twig,但在做了一些调整后它神奇地 re-appeared,我认为这与我的编辑器有关,以及它如何保存,因为我四处移动文件并同时打开编辑器。
在我的情况下,有必要清除缓存...
php bin/console cache:clear --env=dev
我在 phpstorm 的整个项目 ctrl+shift+f
中搜索此文件名(作为字符串),他在缓存目录中的某处找到了文件...也许如果您从缓存文件中删除行就足够了。 .. 但清除所有缓存我的情况 100% 成功