我有一个使用Symfony 4.1的项目,css和js文件存储在public / assets文件夹中,图像也上传在public文件夹中。
这就是我用树枝称呼它们的方式:
<link href="{{ asset('assets/frontOffice/css/style.css') }}" rel="stylesheet" type="text/css" media="all"/>
<link href="{{ asset('assets/frontOffice/css/responsive.css') }}" rel="stylesheet" type="text/css"/>
//................
并调用这样的图像:
<img src="{{ asset(entity.image.webPath|imagine_filter('image_800_600')) }}"
alt="{{ entity.title }}"/>
// or static
<img src="{{ asset('assets/images/ajax_loader.gif') }}" width="150" height="150"/>
<img src="{{ asset('assets/images/logo_sm.png') }}"/>
在本地主机中,一切正常,此功能 {{asset()}} 指向公用文件夹,但是在生产环境中部署并在服务器上上传项目后,{{asset() }}不再指向公用文件夹,而是指向不存在的资产文件夹,当我在浏览器中查看 view-source 时,URL变成这样>
<link href="/assets/frontOffice/css/style.css" rel="stylesheet" type="text/css" media="all"/>
<link href="/assets/frontOffice/css/responsive.css" rel="stylesheet" type="text/css" media="all"/>
<img src="/assets/frontOffice/images/logo.png" alt=""/>
我在项目的根目录中使用此.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ public/index.php [QSA,L]
</IfModule>