我想在生产环境中部署我的Symfony 4网站。
我将变量APP_ENV
设置为prod
(在.env文件中),然后执行了以下命令:yarn build
(= ./node_modules/.bin/encore production
)
然后,我可以看到我的公共目录中有生成的文件(例如:public/build/css/global.9e04a9d9.css
,public/build/js/global.399763b8.js
,...的文件)
我还可以在public/build
目录中看到manifest.json文件,其内容为:
{
"myApp/public/build/js/global.js": "/myApp/public/build/js/global.399763b8.js",
"myApp/public/build/css/global.css": "/myApp/public/build/css/global.9e04a9d9.css"
}
但是当我加载一个页面时,以为我的浏览器(firefox),css和js文件没有加载,我也不明白为什么。
通过示例,在浏览器调试器中,我收到以下“通知”消息:“源“ http://localhost/myApp/public/build/js/global.js的加载失败”。
当我浏览页面代码(通过firefox调试器)时,css和js的路径为:
<link rel="stylesheet" href="/myApp/public/build/css/global.css">
...
<script src="/myApp/public/build/js/global.js"></script>
问题出在这里:为什么global.css
和global.js
不是global.9e04a9d9.css
和global.399763b8.js
?
bin/console cache:clear
清除了缓存(我也尝试过使用bin/console cache:clear --env=prod
)当然,在我的模板树枝文件中,我使用函数“ asset”生成这些路径:
<link rel="stylesheet" href="{{ asset('build/css/global.css') }}">
...
<script src="{{ asset('build/js/global.js') }}"></script>
我的错误在哪里?
答案 0 :(得分:0)
我要按顺序讲。最初,您需要安装此软件包。
composer require asset
此外,您会在`config / packages / asset.yaml``中看到asset.yaml
插入这些行,
framework:
assets:
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
顺便说一句,请确保使用Twig中的asset
函数来包含资产文件,就像这样;
<script src="{{ asset('build/app.js') }}">