我正在尝试在托管服务器上安装Symfony 3.1.4项目。它在我的本地机器上完美运行,但不在外部机器上运行。
对于JS路由,我使用FOSJsRoutingBundle,版本^1.6
。
问题:
当我访问http://mydomain.tld
时,浏览器尝试加载http://mydomain.tld/bundles/fosjsrouting/js/router.js
,但不允许:403 Forbidden
。
据我所知,该文件存在,但我不允许加载它。
解决方法:
php bin/console cache:clear --env=prod
php bin/console fos:js-routing:dump
php bin/console assets:install --symlink web
web/bundles/*
:755没有任何效果。
它可能与符号链接有关吗?我有点失落了。有任何想法吗?
提前致谢!
编辑1:security.yml
security:
providers:
in_memory:
memory: ~
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
remember_me:
secret: '%secret%'
lifetime: 604800
path: /
pattern: ^/
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
check_path: fos_user_security_check
csrf_token_generator: security.csrf.token_manager
logout:
path: fos_user_security_logout
target: index
anonymous: true
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /admin/, role: ROLE_ADMIN }
- { path: /dashboard, role: ROLE_USER }
我最近有这个问题,这对我在Symfony 3.4中有用:
在config.yml
中,您需要将一个包添加到资产配置中,并将base_path
设置为/bundles
。这使得路由公开,并且应该允许您从安装的任何捆绑中提取任何资产文件。当然,如果您愿意,可以在每个包中添加一个包。
framework:
assets:
packages:
bundles:
base_path: '/bundles'