因此,我尝试将Web HTML CSS模板导入到自制MVC中。 当我打开模板本身时,它可以正常工作。但是,当我通过控制器访问它时,它无法连接到CSS文件,并且无法显示正确的样式。只有空白的HTML,没有任何样式。 这就是我尝试访问它的方式
class NewsController {
public function actionIndex() {
$newsList = array();
$newsList = News::getNewsList();
require_once 'views/index.php';
return true;
}
这是HTML头中链接CSS的代码
<link rel="stylesheet" href="css/animate.css" >
<link rel="stylesheet" href="css/icomoon.css">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/style.css">
这是文件夹的位置(将控制器高亮显示,并且views文件夹是完整的模板)文件夹树:
答案 0 :(得分:0)
您需要在CSS路径的开头添加public class Page_Play extends AppCompatActivity {
LinearLayout layout_videoAd;
private InterstitialAd mInterstitialAd;
private RewardedVideoAd mRewardedVideoAd;
@Override
protected void onPause() {
mRewardedVideoAd.pause(this);
super.onPause();
}
@Override
protected void onPostResume() {
mRewardedVideoAd.resume(this);
super.onPostResume();
}
@Override
protected void onDestroy() {
mRewardedVideoAd.destroy(this);
super.onDestroy();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page__play);
layout_videoAd = findViewById(R.id.layout_videoAd);
MobileAds.initialize(this,
"myAppIDHere");
//REWARDEDVIDEO_AD
mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
loadRewardedVideo();
mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
@Override
public void onRewardedVideoAdLoaded() {
Toast.makeText(Page_Play.this, "video ad loaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdOpened() {
}
@Override
public void onRewardedVideoStarted() {
Toast.makeText(Page_Play.this, "video ad started", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdClosed() {
loadRewardedVideo();
}
@Override
public void onRewarded(RewardItem rewardItem) {
//Kullanıcıya puan ver - (kazandı)
}
@Override
public void onRewardedVideoAdLeftApplication() {
//Kullanıcıya puan ver - (tıkladı)
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
Toast.makeText(Page_Play.this, "video ad failedtoload"+i, Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoCompleted() {
}
});
layout_videoAd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//video ad
startVideoAd();
}
});
}
private void loadRewardedVideo() {
//test
mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",
new AdRequest.Builder().build());
}
public void startVideoAd(){
if(mRewardedVideoAd.isLoaded()){
mRewardedVideoAd.show();
}
}
。这允许浏览器使用绝对文件路径。
答案 1 :(得分:0)
./与绝对文件路径无关。它只是标记了当前的错误。
如果要使用绝对文件路径,请使用php或模板语言中的等效文件路径进行操作:
<link rel="stylesheet" href="<?php echo __ DIR __ . DIRECTORY_SEPARATOR . 'blogv4' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR . 'animate.css'; ?>" />
?>
编辑:由于您的文件夹树的图像,您可以编写:
<link rel="stylesheet" href="blogv4/views/css/animate.css" />
您需要输入包含标头的引导文件(例如index.php)的路径。
答案 2 :(得分:0)
确保正在调用控制器的PHP脚本(在您的情况下,是处理请求的index.php)驻留在资产所在的文档根目录中。 而且,如果我是我的话,我会写一个辅助函数来处理我的资产,例如
headerRight: <Image source={require('xxx.png')}
onPress={() => { this.props.navigation.navigate('Next Screen') }} />
例如,您可以通过在返回值的前面添加协议和域前缀来呈现资产所在的绝对路径。