我试图找到解决问题的方法,但我找不到任何解决方案。我会尽力解释一下。
我在MAMP服务器上的本地环境中开发我的网站。主页URL为http://localhost:8888/mysite/web/app_dev.php
。我想将其更改为http://site.dev
以用于开发模式(稍后,我将使用http://site.prod
作为生产模式)。有些人会问我"为什么?"。答案是我们希望(其他开发人员和我)拥有与我的生产中相同类型的URL,例如http://example.com
因此,我查看了Apache的虚拟主机和计算机上的主机文件。我将Apache端口更改为80,将MySQL端口更改为3306(默认情况下Nginx也是80)。
以下是httpd-vhosts.conf
文件:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /Applications/MAMP/htdocs
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
ServerName site.dev
ServerAlias www.site.dev
DocumentRoot /Applications/MAMP/htdocs/site/web
<Directory /Applications/MAMP/htdocs/site/web>
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
</VirtualHost>
hosts
文件:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 site.dev
显然,我在apache httpd.conf
文件中激活vhost:
# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
这是我的新web/.htaccess
文件:
DirectoryIndex app_dev.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app_dev\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app_dev.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app_dev.php/
</IfModule>
</IfModule>
现在,我继续http://site.dev
,一切正常。
我在我的script.js
文件中进行了更改(例如),然后,我刷新了我的主页。什么都没有改变......我尝试执行php app/console assetic:dump
,我再次刷新,奇迹,一切正常。
所以,我的问题是以下问题:如何在不需要执行http://site.dev
控制台功能的情况下使用我的assetic:dump
虚拟主机。
谢谢
编辑:我没有找到问题的解决方案,所以,我会告诉你更多细节: - 当我继续http://localhost/site/
时,我会看到根目录的所有目录和文件。
- 当我继续http://localhost/site/web/
时,显示所有网站但是缺少图像(树枝中的路径不好或更少),我必须执行assetic:dump
。
- 当我继续http://localhost/site/web/app_dev.php
时,一切都会立即刷新......
答案 0 :(得分:0)
php app/console assets:install web --symlink
这应该符合您的资产符号链接,因此您不必每次都重新运行资产命令。
另外,请查看http://symfony.com/blog/new-in-symfony-2-6-smarter-assets-install-command