我想部署我的Symfony 4的网站在生产环境中。我设置(在.ENV文件)可变APP_ENV
to prod
,我执行此命令: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
)当然,在我的模板文件的树枝,我生成功能的“资产”论文路径:
<link rel="stylesheet" href="{{ asset('build/css/global.css') }}">
...
<script src="{{ asset('build/js/global.js') }}"></script>
哪里是我的错?
我会为了告诉。首先,您需要安装该软件包。
composer require asset
此外,你会在'配置/包/ asset.yaml``看到asset.yaml
插入这些行,
framework:
assets:
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
顺便说一句,请确保您使用asset
功能的树枝,包括你的资产的文件,像这样的;
<script src="{{ asset('build/app.js') }}">