【发布时间】:2019-06-23 12:29:00
【问题描述】:
我想在生产环境中部署我的 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) - 我检查了 var/cache 和 public/build 目录(由 www-data 拥有的具有读/写权限的目录)的权限
当然,在我的模板树枝文件中,我使用“asset”函数生成这些路径:
<link rel="stylesheet" href="{{ asset('build/css/global.css') }}">
...
<script src="{{ asset('build/js/global.js') }}"></script>
我的错误在哪里?
【问题讨论】:
标签: symfony assets symfony4 production webpack-encore