【问题标题】:Symfony 3 assets no updateSymfony 3 资产没有更新
【发布时间】:2017-06-25 17:55:46
【问题描述】:

我已经在 Symfony 3 中使用 nginx 和 docker 启动了新项目。它工作得很好,但我的资产没有在web/assets/bundle.js 中更新。更新后我检查我的bundle.js,我看到的是旧版本。

我已经删除了 Symfony 缓存和浏览器,但没有结果:

php bin/console assets:install

我的 nginx 配置:

worker_processes 4;
pid /run/nginx.pid;
events {
  worker_connections  2048;
  multi_accept on;
  use epoll;
}
http {
  server_tokens off;
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 15;
  types_hash_max_size 2048;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  access_log off;
  error_log off;
  gzip on;
  gzip_disable "msie6";
  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
  open_file_cache max=100;
}

还有 Symfony:

server {
    listen   80; ## listen for ipv4; this line is default and implied
    listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
    server_name 127.0.0.1 0.0.0.0 myApp.local;
    root /var/www/lfdw/web;
    location ~ ^(.*)/(app|app_dev|app_test|config)\.php(/|$) {
        fastcgi_pass php-upstream;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }
    error_log /var/log/nginx/symfony_error.log;
    access_log /var/log/nginx/symfony_access.log;
}

你有什么想法吗?

谢谢!

【问题讨论】:

    标签: caching nginx docker symfony


    【解决方案1】:

    我在本地安装时遇到了这个问题,新资产根本无法安装。我所做的是删除 web 中的整个 bundles 目录并重新生成资产。

    另一种 hacky 方法是删除您的供应商和 composer install

    如果你在 prod,你可能只需要执行这个命令:

    app/console assetic:dump --env=prod --no-debug

    http://symfony.com/doc/current/deployment.html#e-dump-your-assetic-assets

    【讨论】:

    • 我在开发环境中,而不是 prod :) 是的,如果我删除我的 bundle.js 并重新创建,则文件是更新的 :(
    • bundles.js 是什么意思?如果你把它放在 Resources/public/js/jsfile.js 中,路径应该是 web/bundles/nameofyourbundle/js/jsfile.js
    • 我的 bundle.js 是一个简单的 javascript 文件,只放在 web/assets 中,而不放在 app/ 中
    • 这就是为什么 assets install 对放置在 Resources/public 中的资产没有影响。如果您将文件直接放在 web 中,则不需要该命令
    • 好的,我了解资产:安装。但是我在 web/assets 中的文件没有更新。我已经清除缓存,但没有结果。如果我重新启动服务器(使用 docker-compose start/stop),我的资产将更新:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 2020-04-15
    • 2011-08-11
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多